Jemand erwähnt, dass der Intel-Compiler C99-Unterstützung hat. Es gibt auch die Comeau C/C++ compiler, die C99 vollständig unterstützt. Dies sind die einzigen, die mir bekannt sind.
C99 Funktionen, die ich nicht verwenden, weil sie nicht gut unterstützt werden, gehören:
- variabler Länge Arrays
- Makros mit variabler Anzahl von Parametern.
C99 Funktionen, die ich regelmäßig, dass ziemlich gut unterstützt werden, verwenden scheinen (mit Ausnahme von Microsoft):
stdint.h
snprintf()
- MS hat eine Nicht-Standard-_snprintf()
, die von nicht ernst Einschränkungen immer Null beendet den Puffer und nicht angibt, wie groß der Puffer sein sollte
Um Microsoft nicht-Unterstützung zu umgehen, verwende ich eine public domain stdint.h
from MinGW (die ich modifiziert auch auf VC6 arbeiten) und ein nearly public domain snprintf()
from Holger Weiss
Artikel, die nicht von Microsoft unterstützt, aber verwenden immer noch auf anderen Compilern auf dem Projekt abhängig sind:
- gemischte Erklärungen und Code
- Inline-Funktionen
_Pragma()
- das macht pragmas viel mehr nutzbare
Bibliotheken nicht vergessen. Neben der netten Syntax (wie benannte Struct-Initialisierer) fügt C99 viele nützliche mathematische Bibliotheksfunktionen hinzu, wie zum Beispiel long lrint (double); was die schnelle Rundung bewirkt, muss man sonst hacken (long) (x + 0.5). –
Der Hochleistungs-PGCC-Compiler der Portland Group ist 100% C99-konform. –