Palabras clave de C

Las palabras clave son palabras que tienen un significado especial en el compilador de C. En las fases de traducción 7 y 8, un identificador no puede escribirse igual, incluido el uso de mayúsculas y minúsculas, que una palabra clave de C. Para más información, consulte las fases de traducción en la Referencia del preprocesador. Para más información sobre los identificadores, consulte Identificadores.

Palabras clave de C estándar

El lenguaje C utiliza las siguientes palabras clave:

auto
break
case
char
const
continue
default
do
double
else
enum

extern
float
for
goto
if
inline1, a
int
long
register
restrict1, a
return

short
signed
sizeof
static
struct
switch
typedef
typeof
typeof_unqual
union
unsigned
void
volatile

while
_Alignas2, a
_Alignof2, a
_Atomic2, b
_Bool1, a
_Complex1, b
_Generic2, a
_Imaginary1, b
_Noreturn2, a
_Static_assert2, a
_Thread_local2, b

1 Palabras clave introducidas en ISO C99.
2 Palabras clave introducidas en ISO C11.
a A partir de la versión 16.8 de Visual Studio 2019, estas palabras clave son compatibles con el código compilado como C cuando se especifican las opciones del compilador /std:c11 o /std:c17.
b A partir de la versión 16.8 de Visual Studio 2019, estas palabras clave se reconocen pero no son compatibles con el compilador en el código compilado como C cuando se especifican las opciones del compilador /std:c11 o /std:c17.

No puede volver a definir las palabras clave. En cambio, puede especificar el texto para reemplazar las palabras clave antes de la compilación mediante directivas de preprocesador de C.

Palabras clave de C específicas de Microsoft

Los estándares ANSI C e ISO C permiten reservar los identificadores con dos caracteres de subrayado iniciales para las implementaciones del compilador. La convención de Microsoft es que los nombres de palabras clave específicas de Microsoft vayan precedidos de subrayados dobles. Estas palabras no se pueden utilizar como nombres de identificador. Para una descripción de las reglas para nombrar identificadores, incluido el uso de caracteres de subrayado dobles, consulte Identificadores.

El compilador de Microsoft C reconoce las palabras clave e identificadores especiales siguientes:

__asm5
__based3, 5
__cdecl5
__declspec5
__except5
__fastcall
__finally5

__inline5
__int165
__int325
__int645
__int85
__leave5
__restrict

__stdcall5
__try5
__typeof__
__typeof_unqual__
dllexport4
dllimport4
naked4
static_assert6
thread4

3 La palabra clave __based tiene usos limitados para las compilaciones de destino de 32 y 64 bits.
4 Estos son identificadores especiales cuando se usan con __declspec; su uso en otros contextos no está restringido.
5 Para compatibilidad con versiones anteriores, estas palabras clave están disponibles tanto con dos caracteres de subrayado iniciales como con un único carácter de subrayado inicial cuando se habilitan las extensiones de Microsoft.
6 Si no incluye <assert.h>, el compilador de Microsoft Visual C asigna static_assert a la palabra clave _Static_assert de C11.

Las extensiones de Microsoft están habilitadas de manera predeterminada. Para ayudar a crear código portátil, puede deshabilitar las extensiones de Microsoft especificando la opción /Za (Deshabilitar extensiones de lenguaje) durante la compilación. Cuando se usa esta opción, se deshabilitan algunas palabras clave específicas de Microsoft.

Con las extensiones de Microsoft habilitadas, puede usar las palabras clave antes indicadas en los programas. Para ajustarse al estándar del lenguaje, la mayoría de estas palabras clave tienen un carácter de subrayado doble inicial. Las cuatro excepciones, dllexport, dllimport, nakedy thread, solo se usan con __declspec y no necesitan un carácter de subrayado doble inicial. Por compatibilidad con versiones anteriores, se admiten las versiones con un solo subrayado del resto de las palabras clave.

Vea también

Elementos de C