Namespaces
Variants

C keywords

From cppreference.net
< c

Ceci est une liste de mots-clés réservés en C. Puisqu'ils sont utilisés par le langage, ces mots-clés ne sont pas disponibles pour une redéfinition. Exceptionnellement, ils ne sont pas considérés comme réservés dans les attribute-token s . (depuis C23)

alignas (C23)
alignof (C23)
auto
bool (C23)
break
case
char
const
constexpr (C23)
continue
default
do
double
else
enum

extern
false (C23)
float
for
goto
if
inline (C99)
int
long
nullptr (C23)
register
restrict (C99)
return
short
signed

sizeof
static
static_assert (C23)
struct
switch
thread_local (C23)
true (C23)
typedef
typeof (C23)
typeof_unqual (C23)
union
unsigned
void
volatile
while

_Alignas (C11) (obsolète en C23)
_Alignof (C11) (obsolète en C23)
_Atomic (C11)
_BitInt (C23)
_Bool (C99) (obsolète en C23)
_Complex (C99)
_Decimal128 (C23)
_Decimal32 (C23)
_Decimal64 (C23)
_Generic (C11)
_Imaginary (C99)
_Noreturn (C11) (obsolète en C23)
_Static_assert (C11) (obsolète en C23)
_Thread_local (C11) (obsolète en C23)

Les mots-clés les plus courants qui commencent par un soulignement sont généralement utilisés via leurs macros de commodité :

Mot-clé Utilisé comme Défini dans
_Alignas (C11) (obsolète en C23) alignas (supprimé en C23) stdalign.h
_Alignof (C11) (obsolète en C23) alignof (supprimé en C23) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) (aucune macro)
_Bool (C99) (obsolète en C23) bool (supprimé en C23) stdbool.h
_Complex (C99) complex complex.h
_Decimal128 (C23) (aucune macro)
_Decimal32 (C23) (aucune macro)
_Decimal64 (C23) (aucune macro)
_Generic (C11) (aucune macro)
_Imaginary (C99) imaginary complex.h
_Noreturn (C11) (obsolète en C23) noreturn stdnoreturn.h
_Static_assert (C11) (obsolète en C23) static_assert (supprimé en C23) assert.h
_Thread_local (C11) (obsolète en C23) thread_local (supprimé en C23) threads.h

Certains mots-clés sont dépréciés et conservés comme orthographes alternatives à des fins de compatibilité. Ils peuvent être utilisés partout où le mot-clé peut l'être.

Mot-clé Orthographe alternative
alignas (C23) _Alignas (C11) (obsolète en C23)
alignof (C23) _Alignof (C11) (obsolète en C23)
bool (C23) _Bool (C99) (obsolète en C23)
static_assert (C23) _Static_assert (C11) (obsolète en C23)
thread_local (C23) _Thread_local (C11) (obsolète en C23)

Il n'est pas spécifié si l'une des orthographes de ces mots-clés, leurs formes alternatives, ou true et false est implémentée en tant que macro prédéfinie.

Chaque nom qui commence par un double soulignement __ ou un soulignement _ suivi d'une lettre majuscule est réservé : voir identifiant pour plus de détails.

Notez que les digrammes <% , %> , <: , :> , %: , et %:%: fournissent une manière alternative de représenter les jetons standards .

Les jetons suivants sont reconnus par le préprocesseur lorsqu'ils sont utilisés dans le contexte d'une directive de préprocesseur :

if
elif
else
endif

ifdef
ifndef
elifdef (C23)
elifndef (C23)
define
undef

include
embed (C23)
line
error
warning (C23)
pragma

defined
__has_include (C23)
__has_embed (C23)
__has_c_attribute (C23)

Les jetons suivants sont reconnus par le préprocesseur lorsqu'ils sont utilisés en dehors du contexte d'une directive de préprocesseur :

_Pragma (C99)

Les mots-clés supplémentaires suivants sont classés comme des extensions et sont conditionnellement pris en charge :

asm
fortran

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 6.4.1 Mots-clés (p: 53)
  • J.5.9 Le mot-clé fortran (p: 601)
  • J.5.10 Le mot-clé asm (p: 601)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 6.4.1 Mots-clés (p: 42-43)
  • J.5.9 Le mot-clé fortran (p: 422)
  • J.5.10 Le mot-clé asm (p: 422)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 6.4.1 Mots-clés (p: 58-59)
  • J.5.9 Le mot-clé fortran (p: 580)
  • J.5.10 Le mot-clé asm (p: 580)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 6.4.1 Mots-clés (p : 50)
  • J.5.9 Le mot-clé fortran (p : 514)
  • J.5.10 Le mot-clé asm (p : 514)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 3.1.1 Mots-clés
  • G.5.9 Le mot-clé fortran
  • G.5.10 Le mot-clé asm

Voir aussi

Documentation C++ pour keywords