La sintaxis del lenguaje de programación C es el conjunto de reglas que rigen la escritura de software en el lenguaje C. Está diseñado para permitir programas que son extremadamente breves, tienen una estrecha relación con el código objeto resultante y, sin embargo, proporcionan una abstracción de datos de nivel relativamente alto . C fue el primer lenguaje de alto nivel ampliamente exitoso para el desarrollo de sistemas operativos portátiles .
El lenguaje C representa los números en tres formas: integral , real y complejo . Esta distinción refleja distinciones similares en la arquitectura del conjunto de instrucciones de la mayoría de las unidades centrales de procesamiento . Los tipos de datos integrales almacenan números en el conjunto de enteros , mientras que los números reales y complejos representan números (o pares de números) en el conjunto de números reales en forma de coma flotante .
Todos los tipos de enteros de C tienen signed
y unsigned
variantes. Si signed
o unsigned
no se especifica explícitamente, en la mayoría de las circunstancias signed
se asume. Sin embargo, por razones históricas, Plain char
es un tipo distinto de ambos signed char
y unsigned char
. Puede ser un tipo firmado o un tipo sin firmar, según el compilador y el juego de caracteres (C garantiza que los miembros del juego de caracteres básico de C tengan valores positivos). Además, los tipos de campos de bits especificados como simples int
pueden estar firmados o no, según el compilador.
Los tipos enteros de C vienen en diferentes tamaños fijos, capaces de representar varios rangos de números. El tipo char
ocupa exactamente un byte (la unidad de almacenamiento direccionable más pequeña), que suele tener 8 bits de ancho. (Aunque char
puede representar cualquiera de los caracteres "básicos" de C, es posible que se requiera un tipo más amplio para los juegos de caracteres internacionales). La mayoría de los tipos enteros tienen variedades con y sin signo , designadas por las palabras clave signed
y unsigned
. Los tipos enteros con signo pueden usar una representación de complemento a dos, complemento a uno o signo y magnitud . En muchos casos, existen múltiples formas equivalentes de designar el tipo; por ejemplo, ysigned short int
short
son sinónimos.
La representación de algunos tipos puede incluir bits de "relleno" no utilizados, que ocupan almacenamiento pero no están incluidos en el ancho. La siguiente tabla proporciona una lista completa de los tipos de enteros estándar y sus anchos mínimos permitidos (incluido cualquier bit de signo).
El char
tipo es distinto de ambos signed char
y unsigned char
, pero se garantiza que tendrá la misma representación que uno de ellos. Los tipos _Bool
y long long
están estandarizados desde 1999 y es posible que los compiladores de C más antiguos no los admitan. _Bool
Normalmente se accede al tipo a través del typedef
nombre bool
definido por el encabezado estándar stdbool.h .