Mots clés C

Les mots clés sont des mots qui ont une signification spéciale pour le compilateur C. Dans les phases de traduction 7 et 8, un identificateur ne peut pas avoir la même orthographe et la même casse qu'un mot clé C. Pour plus d’informations, consultez Phases de traduction dans les Informations de référence sur le préprocesseur. Pour plus d’informations sur les identificateurs, consultez Identificateurs.

Mots clés C Standard

Le langage C utilise les mots clés suivants :

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 Mots clés introduits dans ISO C99.
2 Mots clés introduits dans ISO C11.
a Depuis Visual Studio 2019 version 16.8, ces mots clés sont pris en charge dans le code compilé en tant que C lorsque les options de compilateur /std:c11 ou /std:c17 sont spécifiées.
b Depuis Visual Studio 2019 version 16.8, ces mots clés sont reconnus mais pas pris en charge par le compilateur dans le code compilé en tant que C lorsque les options de compilateur /std:c11 ou /std:c17 sont spécifiées.

Vous ne pouvez pas redéfinir les mots clés. Toutefois, vous pouvez spécifier du texte pour remplacer des mots clés avant la compilation, en suivant les directives de préprocesseur C.

Mots clés C spécifiques à Microsoft

Les normes C ANSI et ISO permettent de réserver les identificateurs avec deux traits de soulignement à gauche pour des implémentations de compilateur. La convention Microsoft est de faire précéder les noms des mots clés spécifiques à Microsoft de deux traits de soulignement. Ces mots ne peuvent pas être utilisés en tant que noms d'identificateurs. Pour obtenir une description des règles d’attribution de noms aux identificateurs, y compris l’utilisation de deux traits de soulignement, consultez Identificateurs.

Les mots clés et les identificateurs spéciaux ci-dessous sont reconnus par le compilateur 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 Le mot clé __based a des utilisations limitées pour les compilations 32 bits et 64 bits cibles.
4 Ce sont des identificateurs spéciaux lorsqu'ils sont utilisés avec __declspec ; leur utilisation dans d'autres contextes n'est pas limitée.
5 Pour assurer la compatibilité avec les versions précédentes, ces mots clés sont disponibles à la fois avec deux traits de soulignement de début et un seul trait de soulignement de fin lorsque les extensions Microsoft sont activées.
6 Si vous n’incluez pas <assert.h>, le compilateur Microsoft Visual C mappe static_assert au mot clé C11 _Static_assert.

Les extensions Microsoft sont activées par défaut. Pour faciliter la création de code portable, vous pouvez désactiver les extensions Microsoft en spécifiant l’option /Za (Désactiver les extensions de langage) durant la compilation. Lorsque vous utilisez cette option, certains mots clés spécifiques à Microsoft sont désactivés.

Lorsque les extensions Microsoft sont activées, vous pouvez utiliser les mots clés répertoriés ci-dessus dans vos programmes. Pour être conformes au standard du langage, la plupart de ces mots clés sont précédés d’un double trait de soulignement. Les quatre exceptions, dllexport, nakeddllimport et thread, sont utilisées uniquement avec __declspec et ne nécessitent pas de trait de soulignement double initial. Pour assurer la compatibilité descendante, des versions à un seul trait de soulignement sont prises en charge pour les autres mots clés.

Voir aussi

Éléments de C