Quale versione di C dovrei imparare? [chiuso]

6

Sembra K & R "Lingua di programmazione C (2a edizione)" copre ANSI C, ma un altro libro che sto iniziando ( Stephen G. Kochan "Programmazione in C" ) dice che usa C99.

Vengo da uno sfondo C # / JavaScript / Python / PHP / Java e sto cercando di completare le mie competenze.

Attualmente sto usando GCC, ma sono curioso di Clang. Quale versione viene utilizzata di più nel codice nuovo ed esistente? Ha importanza, o dovrei imparare entrambi?

    
posta Nogwater 09.04.2011 - 18:31
fonte

4 risposte

15

Prima impara C89, poi impara tutto ciò che è diverso tra C89 e C99.

Un buon libro che copre entrambi è Programmazione C: un approccio moderno .

Penso che la C89 si abitui di più; GNU lo usa e quindi, la maggior parte dei compilatori non supporta nemmeno C99 (completamente). GCC supporta solo C99 parzialmente. Io, le uniche caratteristiche C99 che utilizzo sono array di lunghezza variabile e commenti a riga singola. Se vuoi la massima portabilità, scegli C89 per i tuoi progetti, ma è comunque importante essere a conoscenza delle caratteristiche di C99 .

    
risposta data 09.04.2011 - 19:19
fonte
3

Penso che tu stia confondendo Norme linguistiche C e estensioni specifiche offerte dai compilatori.

Per quanto riguarda gli standard, vorrei imparare l'ultima che è possibile utilizzare per produrre codice in esecuzione.

Per quanto riguarda il compilatore, proverei a stare lontano dalle estensioni il più a lungo possibile. Considera la possibilità di compilare una modalità altamente conforme allo standard (ad esempio -pedantic per gcc e clang ). Ciò rende il tuo codice più portabile e ti aiuta a capire meglio la lingua.

    
risposta data 09.04.2011 - 18:45
fonte
1

Per un aspetto, non importa. Mentre costruisci una carriera nella programmazione, sei sicuro di incontrare C, C89, C99, C ++ in alcune forme varianti, C #, Java (come una quasi-variante di C) e Objective-C (come un'altra quasi-variante). obiettivo, a mio avviso, sarebbe quello di stabilire se stessi come programmatore competente prima, e quindi qualsiasi lingua che si vede, tra cui Fortran, Cobol o Basic, sarà facile da leggere e comprendere, e quindi facilmente adattabile.

In questo senso, una prima messa a fuoco su una di queste lingue va bene, a patto che tu sia pronto ad adattarti alle altre lingue man mano che arrivano.

Quindi dico questo: se stai facendo di questo un focus di studio accademico, allora scegli la variante standard C più popolare in uso oggi, e segui il tuo apprendimento rispettando rigorosamente il set standard . Successivamente, fai un'analisi delle differenze tra la tua scelta e le differenze.

Se questo è un focus professionale, vorrai imparare C # e Objective-C e conoscerli entrambi a freddo, eventualmente, a meno che tu non mantenga il codice. E se sei un professionista intelligente, stai anche diventando esperto in PHP, Python, Ruby, Visual Basic (sai, solo. In. Caso.) Etc, etc, etc ...

    
risposta data 09.04.2011 - 20:21
fonte
0

Usa il sottoinsieme C di C ++. Essere in grado di definire le variabili vicino al punto in cui sono inizializzate e utilizzate è meglio che avere C che ti obbliga a dichiarare una lista di variabili nella parte superiore.

    
risposta data 17.12.2011 - 04:25
fonte

Leggi altre domande sui tag