Stavo leggendo alcune delle migliori pratiche per il progetto GNOME, e una cosa che hanno continuato a sottolineare era evitare le funzionalità C99, in quanto il supporto non era ancora diffuso. Alcune delle cose che hanno citato erano caratteristiche come commenti a riga singola e dichiarazioni di variabili nel mezzo di un blocco. Mi ha fatto meraviglia, il supporto C99, anche per le funzionalità di base come i commenti //
, non è ancora molto diffuso? Sono passati quasi 15 anni da quando è stato adottato lo standard, e in quel periodo abbiamo persino avuto un nuovo standard. E 'davvero un problema?Il supporto per C99 non è ancora molto diffuso?
5
A
risposta
6
http://en.wikipedia.org/wiki/C99#Implementations
sembra che ancora è un po 'un problema, anche in GCC, anche se sembra che alcuni compilatori commerciali hanno implementato l'intera serie.
Microsoft ha detto ripetutamente che non ci sono piani per implementare lo standard C99 in qualsiasi punto futuro che è un peccato per la programmazione C su Windows.
6
L'unico "compilatore C" remoto che può essere utilizzato per l'applicazione desktop o l'utilizzo di applicazioni mobili ma che non supporta C99 è MSVC. Se stai scrivendo software embedded per sistemi oscuri con i loro compilatori proprietari, evitare le funzionalità di C99 potrebbe avere senso, ma la scelta in Gnome non ha alcun senso.
Problemi correlati
- 1. Perché OODBMS non è diffuso come RDBMS?
- 2. Qual è lo stato ufficiale del supporto C99 in VS2013?
- 3. Ancora migliore supporto per HAML in Netbeans?
- 4. C99 è retrocompatibile con C89?
- 5. Quali funzionalità di C99 sono considerate dannose o non supportate
- 6. Qual è lo stato del supporto C99 nei principali compilatori/toolchain?
- 7. È possibile combinare il codice C89 con il codice C99?
- 8. Il mio codificatore JNI JPEG per Android è molto lento
- 9. Esiste un #define per C99?
- 10. Il supporto non funziona
- 11. implicita dichiarazione di funzione 'pthread_mutex_init' non è valido in C99
- 12. Il supporto Psycopg2 Python SSL non è compilato in
- 13. AVVERTENZA: "dichiarazione implicita di funzione '...' non è valido in C99"
- 14. implicita dichiarazione di funzione itoa non è valida in C99
- 15. Facebook ha abbandonato il supporto per Python?
- 16. associatività C99 per gli operatori - dove è specificato?
- 17. Il segnale 3.0 beta è ancora disponibile per il 2015?
- 18. Facebook SDK per Android: il primo accesso è molto lento/richiede molto tempo
- 19. EF6 SQLQuery molto lento ma il database è molto veloce
- 20. Il supporto della concorrenza Clojure è ancora disabilitato su App Engine?
- 21. Il seguente programma è un programma C99 rigorosamente conforme?
- 22. Come int è il tipo di supporto per enum
- 23. campo modulo non può creare per 'created_by' ancora, perché il suo modello 'users.User' collegate non è stato caricato ancora
- 24. Semantica volatile in C99
- 25. django è molto lento
- 26. Applicare il C99 rigoroso nel progetto Autoconf
- 27. Installazione Moq non funzionante, il metodo originale è ancora chiamato
- 28. L'app predefinita non è ancora stata configurata
- 29. Maven: Artifact non è stato ancora confezionato
- 30. perché il supporto non js
Huh. Sai perché la SM non implementerà C99? –
http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ A quanto ho capito, implementeranno solo funzionalità che sono sottoinsieme degli standard C++. – Nobilis
@kunkelwe: Perché l'unico coinvolgimento di Microsoft nel processo degli standard C è sabotarlo. –