Lea la Introducción al lenguaje de programación C99 (Parte I) y la Introducción al lenguaje de programación C99 (Parte II) antes de leer este artículo.
- Adición de funciones de biblioteca: C99 proporciona algunas funciones de biblioteca adicionales que se enumeran a continuación.
función de biblioteca Uso complejo.h complex.h admite aritmética compleja fenv.h fenv.h da acceso a etiquetas de punto flotante y entornos de punto flotante. tiposint.h inttypes.h brinda soporte para manejar números largos (números de mayor ancho).
Define un estándar, nombres enteros portátilesiso646.h iso646.h define macros que corresponden a operadores como && y ^ stdbool.h stdbool.h admite tipos de datos booleanos.
Da macros como bool , true y false .stdint.h stdint.h se incluye en el archivo de encabezado inttypes.h .
Proporciona un conjunto estándar y portátil de nombres enteros.tgmath.h tgmath.h define macros de punto flotante genéricos de tipo wchar.h wchar.h admite funciones multibyte y de caracteres anchos. tipowc.h wctype.h admite funciones de clasificación de caracteres anchos y multibyte. - Adición de especificadores de formato : en C99 Standard, las funciones printf() y scanf() se modifican de tal manera que tienen la capacidad de manejar modificadores long long y unsigned long long . El especificador de formato de long long int es ll y long long int sin signo es ul.
El siguiente programa de ejemplo demuestra el uso de valores long long y long long sin signo.
#include<stdio.h>
int
main()
{
long
long
int
a=1121231456;
unsigned
long
long
int
b=1124154632;
printf
(
"Long Number: %lld and"
" Unsigned long: %llu"
,
a, b);
}
- Identificador __func__ :
C99 agrega el identificador __func__ que devuelve el nombre de la función invocada como string. En simple, si se llama a __func__ en la función fun1(), entonces devuelve la string fun1 . - Declaraciones int implícitas :
en el estándar C89, no necesitamos una declaración explícita del tipo de retorno de entero en las funciones, es decir, si declaramos nombre_función (parámetros), el compilador asumirá el entero como tipo de retorno predeterminado. En C99, ya no se admiten todas las declaraciones de funciones implícitas. Algunos compiladores generarán errores, mientras que otros muestran el mismo error como advertencia. El compilador GCC lo muestra como una advertencia. - Tipos de devolución nulos:
en C89 Standard, podemos omitir los valores de devolución para las funciones. Si escribimos int fun1() y lo ejecutamos sin especificar el valor de retorno, el compilador se ejecutará automáticamente tomando el valor de retorno predeterminado. Este valor puede ser 0 o un valor de basura. Pero en C99, si escribimos int fun1() sin declaración de retorno, entonces el compilador lo trata como un error. - Tipos enteros extendidos: el estándar C99 proporcionó varias extensiones a los tipos enteros.
Tipo extendido Sentido int16_t Entero tiene exactamente 16 bits int_menos16_t Entero tiene al menos 16 bits. int_fast32_t Los tipos enteros más rápidos que tienen al menos 32 bits. intmax_t Contiene el tipo entero más grande uintmax_t Contiene el tipo de entero sin signo más grande Estos generalmente se usan raramente.
Estos son algunos de los principales cambios que incluyen la adición, el cambio y la eliminación de funciones en C89 para obtener el estándar C99.
Publicación traducida automáticamente
Artículo escrito por avsadityavardhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA