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
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 :
__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 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
, naked
dllimport
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.