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
inline
1, a
int
long
register
restrict
1, a
return
short
signed
sizeof
static
struct
switch
typedef
typeof
typeof_unqual
union
unsigned
void
volatile
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:
__asm
5
__based
3, 5
__cdecl
5
__declspec
5
__except
5
__fastcall
__finally
5
__inline
5
__int16
5
__int32
5
__int64
5
__int8
5
__leave
5
__restrict
__stdcall
5
__try
5
__typeof__
__typeof_unqual__
dllexport
4
dllimport
4
naked
4
static_assert
6
thread
4
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 si especifica 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
, naked
y 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.