C99
From cppreference.net
<
c
ISO/IEC 9899:1999 , también conocido como C99 , es una revisión anterior del estándar de C.
|
Esta sección está incompleta
Razón: características del núcleo/biblioteca, TC1~TC3, DRs |
Contenidos |
Nuevas características del lenguaje
- Nombres de caracteres universales en identificadores
- Límites de traducción aumentados
- // comentarios
- restrict punteros
-
Tipos
aritméticos mejorados
- _Bool
- long long y unsigned long long
- Tipos enteros extendidos
- _Complex tipos ( float _Complex , double _Complex , y long double _Complex )
- _Imaginary tipos ( float _Imaginary , double _Imaginary , y long double _Imaginary )
- Miembros de arreglo flexibles
- Arreglo de longitud variable (VLA) tipos y tipos modificables variables (VM)
-
Mejoras de
lista-de-inicialización entre llaves
para
arreglos
,
estructuras y uniones
tipos
- Inicializadores no constantes
- Inicializadores designados
- Calificadores cvr idempotentes
- Coma final en lista-de-enumeradores
- Constantes flotantes hexadecimales
- Literales compuestos
- Entorno de punto flotante
- Requerir truncamiento para divisiones de tipos enteros con signo
-
Retorno
return
0
;
implícito en la
main()función - Declaraciones y sentencias en orden mixto
- sentencia-de-inicialización en bucles for
- inline funciones
- Variable predefinida __func__
- Calificadores cvr y static en [ ] dentro de declaraciones de función
- Macros variádicas
- _Pragma operador de preprocesador
-
Pragma estándar para evaluación de punto flotante
-
STDCFENV_ACCESS -
STDCFP_CONTRACT -
STDCCX_LIMITED_RANGE
-
Macros de prueba de características para funcionalidades opcionales
-
__STDC_IEC_559__
- Indica que se admite la aritmética de punto flotante binario IEEE-754 y las funciones matemáticas requeridas.
-
__STDC_IEC_559_COMPLEX__
- Indica que se admite la aritmética compleja IEEE-754 y las funciones matemáticas requeridas.
-
__STDC_HOSTED__
- Indica que la implementación es hospedada .
-
__STDC_ISO_10646__
- Indica que se utiliza Unicode en las codificaciones de literales anchos y se expande a la revisión compatible más reciente.
-
__STDC_MB_MIGHT_NEQ_WC__
- Indica que existen algunos caracteres en el conjunto de caracteres básico que tienen diferentes valores de unidad de código en las codificaciones de literales ordinarias y anchas .
Nuevas características de la biblioteca
Nuevos encabezados
Características de la biblioteca
-
Alias para tipos enteros
-
Tipos enteros con ancho exacto (
int N _tyuint N _t) -
Tipos enteros más rápidos con al menos el ancho dado (
int_fast N _tyuint_fast N _t) -
Tipos enteros más pequeños con al menos el ancho dado (
int_least N _tyuint_least N _t) - Tipos enteros capaces de conversión entre punteros a objetos ( intptr_t y uintptr_t )
- Tipos enteros con ancho máximo ( intmax_t y uintmax_t )
-
Tipos enteros con ancho exacto (
- Operaciones con long long y intmax_t
- Acceso al entorno de punto flotante
-
Funciones matemáticas extendidas de punto flotante
- Nuevas funciones matemáticas de punto flotante
-
Variantes -
fy -lpara funciones matemáticas de punto flotante existentes y nuevas - Manejo de errores matemáticos
- Funciones complejas
- _Exit()
- Soporte de formato para long long , unsigned long long , intmax_t , y uintmax_t
- isblank() y iswblank()
- snprintf() y vsnprintf()
- vfscanf() y vfwscanf() familias de funciones
-
Extensiones para las familias de funciones
fscanf()
y
fprintf()
-
llmodificador de longitud para long long y unsigned long long -
hhmodificador de longitud para signed char y unsigned char -
lmodificador de longitud para double -
zmodificador de longitud para size_t y su versión con signo -
tmodificador de longitud para ptrdiff_t y su versión sin signo -
jmodificador de longitud para intmax_t y uintmax_t -
aespecificador de conversión para tipos de punto flotante
-
- Macros de límites numéricos para long long y unsigned long long
- Macros de límites numéricos correspondientes a alias existentes y nuevos para tipos enteros
- Macros de cadena de formato para tipos enteros
- va_copy
- Macros matemáticas genéricas de tipo
- Macros de comparación de punto flotante
- Macros de clasificación de punto flotante
- Macros de compatibilidad para _Bool ( bool , true , y false )
Características obsoletas
Características eliminadas
- Implícito int en declaraciones
- Declaraciones implícitas de funciones
Características obsoletas
Informes de defectos
Template:c/language/history/DR99
Soporte del compilador
Características principales del lenguaje C99
|
Esta sección está incompleta
Razón: necesita enumerar compiladores de C, verificación |
|
Característica de C99
|
Documento(s)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| Nombres de caracteres universales en identificadores | 3.1 | Sí | Sí | ||||||||
| Límites de traducción incrementados translation limits | N590 | 0.9 | N/A | ||||||||
| // comentarios | N644 | 2.7 | Sí | Sí | |||||||
| restrict punteros | N448 | 2.95 | Sí | parcial * | |||||||
| Tipos aritméticos mejorados |
N815
N601 N620 N638 N657 N694 N809 |
Sí | parcial | Quizás | |||||||
| Miembros de arreglo flexibles | 3.0 | Sí | Sí | ||||||||
| Arreglo de longitud variable (VLA) tipos | N683 | 0.9 | Sí | ||||||||
| Tipos modificables variablemente (VM) | N2778 | N/A | Sí | ||||||||
| Inicializadores designados | N494 | 3.0 | Sí | Sí | |||||||
| Inicializadores no constantes | 1.21 | N/A | |||||||||
| Calificadores cvr idempotentes | N505 | 3.0 | N/A | ||||||||
| Coma final en enumerator-list | 0.9 | Sí | Sí | ||||||||
| Hexadecimal constantes flotantes | N308 | 2.8 | Sí | Sí | |||||||
| Literales compuestos | N716 | 3.1 | Sí | Sí | |||||||
| Entorno de punto flotante | parcial | parcial | |||||||||
| Requiriendo truncamiento para divisiones de tipos enteros con signo | N617 | 0.9 | N/A | ||||||||
Retorno implícito
return
0
;
en la
main()
función
|
Sí | Sí | Sí | ||||||||
| Declaraciones y sentencias en orden mixto | N740 | 3.0 | Sí | Sí | |||||||
| init-statement en bucles for | Sí | Sí | Sí | ||||||||
| inline funciones | N741 | 4.3 | Sí | Sí | |||||||
| Variable predefinida __func__ | N611 | 2.95 | Sí | Sí | |||||||
| Calificadores cv y static en [ ] dentro de declaraciones de función | 3.1 | Sí | |||||||||
| Macros variádicos | N707 | 2.95 | Sí | Sí | |||||||
| _Pragma operador de preprocesador | N634 | 3.0 | Sí | parcial * | |||||||
| Pragmas estándar para evaluación de punto flotante |
N631
N696 |
No | No | ||||||||
|
Característica de C99 |
Documento(s) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|