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
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:
__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 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.