Compartilhar via


Palavras-chave C

Palavras-chave são palavras que têm um significado especial para o compilador C. Nas fases 7 e 8 da tradução, um identificador não pode ter a mesma ortografia e maiúsculas e minúsculas que a palavra-chave C. Para obter mais informações, consulte as fases de tradução na Referência do pré-processador. Para obter mais informações sobre os identificadores, consulte Identificadores.

Palavras-chave C padrão

A linguagem C usa as seguintes palavras-chave:

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

while
_Alignas 2, a
_Alignof 2, a
_Atomic 2, b
_Bool 1, a
_Complex 1, b
_Generic 2, a
_Imaginary 1, b
_Noreturn 2, a
_Static_assert 2, a
_Thread_local 2, b

1 Palavras-chave introduzidas na ISO C99.
2 Palavras-chave introduzidas na ISO C11.
a A partir do Visual Studio 2019 versão 16.8, essas palavras-chave têm suporte no código compilado como C quando as opções do compilador /std:c11 ou /std:c17 são especificadas.
b A partir do Visual Studio 2019 versão 16.8, essas palavras-chave são reconhecidas, mas não têm suporte do compilador no código compilado como C quando as opções do compilador /std:c11 ou /std:c17 são especificadas.

Não é possível redefinir palavras-chave. No entanto, você pode especificar o texto a ser substituído por palavras-chave antes da compilação usando diretivas do pré-processador C.

Palavras-chave C específicas da Microsoft

Os padrões ANSI e ISO C permitem que os identificadores com dois sublinhados iniciais sejam reservados para implementações de compilador. A convenção da Microsoft é preceder nomes de palavras-chave específicas da Microsoft com sublinhados duplos. Essas palavras não podem ser usadas como nomes de identificadores. Para obter uma descrição das regras para nomear identificadores, inclusive o uso de sublinhados duplos, consulte Identificadores.

As palavras-chave e os identificadores especiais a seguir são reconhecidos pelo compilador Microsoft C:

__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 A palavra-chave __based tem usos limitados para compilações de destino de 32 e 64 bits.
4 Esses são identificadores especiais quando usados com __declspec; seu uso em outros contextos é irrestrito.
5 Para compatibilidade com versões anteriores, essas palavras-chave estão disponíveis com dois sublinhados à esquerda e um único sublinhado à esquerda quando as extensões da Microsoft estão habilitadas.
6 Se você não incluir <assert.h>, o compilador Microsoft Visual C mapeará static_assert para a palavra-chave C11 _Static_assert.

As extensões da Microsoft são ativadas por padrão. Para ajudar a criar códigos portáveis, você pode desabilitar as extensões da Microsoft especificando a opção /Za (Desabilitar extensões de linguagem) durante a compilação. Ao usar essa opção, algumas palavras-chave específicas da Microsoft são desabilitadas.

Quando as extensões do Microsoft são habilitadas, você pode usar as palavras-chave listadas acima em seus programas. Para estar em conformidade com o padrão de linguagem, a maioria dessas palavras-chave é precedida por um sublinhado duplo. As quatro exceções, dllexport, dllimport, naked e thread são usadas apenas com __declspec e, portanto, não exigem um sublinhado duplo à esquerda. Para compatibilidade com versões anteriores, há suporte para as versões de sublinhado único do restante das palavras-chave.

Confira também

Elementos de C