Alguien mencionó que el compilador Intel tiene soporte C99. También está el Comeau C/C++ compiler que es totalmente compatible con C99. Estos son los únicos de los que tengo conocimiento.
C99 características que no uso porque no están bien soportados incluyen:
- matrices de longitud variable
- macros con número variable de parámetros.
C99 características que utilizo regularmente que parecen estar bastante bien soportados (excepto por Microsoft):
stdint.h
snprintf()
- MS tiene un no-estándar _snprintf()
que tiene serias limitaciones de no siempre nulo que termina el búfer y no indica qué tan grande debe ser el búfer
Para evitar el no soporte de Microsoft, utilizo un public domain stdint.h
from MinGW (que he modificado para trabajar también en VC6) y un nearly public domain snprintf()
from Holger Weiss
Los productos que no son soportadas por Microsoft, pero todavía va a utilizar en otros compiladores en función del proyecto incluyen:
- declaraciones mixtos y código
- funciones en línea
_Pragma()
- esto hace mucho más pragmas utilizables
no se olvide de las bibliotecas. Además de una buena sintaxis (como los inicializadores de estructuras nombradas), C99 agrega muchas funciones útiles de biblioteca matemática, como long lrtint (double); que hace la operación de redondeo rápido que de otro modo tendría que hackear como (largo) (x + 0.5). –
El compilador PGCC de alto rendimiento del Grupo Portland es 100% compatible con C99. –