Si dovrebbe evitare o fare attenzione con le funzionalità di C99 nel codice C?

5

Alcuni sembrano dire che si dovrebbero evitare le funzionalità C99 nel codice C in quanto i compilatori non supportano realmente tali funzioni. C99 è uno standard dal 1999, non dovrebbero queste caratteristiche essere abbastanza diffuse ora?

Si dovrebbe evitare di usare le funzionalità C99 nel nuovo codice? Nel codice legacy? Mi capita di utilizzare alcune funzionalità di C99 abbastanza spesso, dovrei smettere di farlo o stare più attento con l'uso di quelle funzioni?

    
posta Anto 22.02.2011 - 20:24
fonte

3 risposte

4

Dipende da quanto portatile deve essere il tuo codice. I compilatori C supportano le funzionalità C99 in misura molto diversa e questo può essere un problema. Vedi qui per i dettagli: link

Personalmente, resterei con C89 / C90 a meno che non fossi sicuro di compilare sempre il codice con lo stesso compilatore.

    
risposta data 22.02.2011 - 20:29
fonte
6

Assolutamente no. Consiglio vivamente di usare il codice C99 in quanto, con qualsiasi cosa, è standardizzato. La compatibilità tra i compilatori è sempre diversa e frustrante, ma è importante abbracciare la standardizzazione e semplicemente abbracciare ciò che gli sviluppatori DOVREBBE, in teoria, utilizzare. Uso C99 giorno per giorno e, a parte qualche hoo-ha con macro variadic, tutto funziona bene, specialmente su VS e Xcode (ovviamente).

    
risposta data 22.02.2011 - 21:20
fonte
3

Nonostante l'età di C99, il supporto rimane discutibile in diversi compilatori (come Microsoft Visual C ++ ). Alcune funzionalità di C99, come le macro variadic, sono supportate da molti compilatori; altre caratteristiche, non così tanto. Quindi dovrai valutare le tue esigenze multipiattaforma e decidere se i compilatori che dovrai utilizzare supporteranno le funzionalità che desideri.

Una seconda considerazione è che C99 diverge maggiormente dal C ++. Se non pianifichi di incorporare mai C ++, questo non è un problema.

    
risposta data 22.02.2011 - 20:32
fonte

Leggi altre domande sui tag