Parole chiave C

Le parole chiave sono parole che hanno un significato speciale per il compilatore C. Nelle fasi di conversione 7 e 8, un identificatore non può avere la stessa ortografia e maiuscole/minuscole di una parola chiave C. Per altre informazioni, vedere fasi di conversione nella Guida di riferimento al preprocessore. Per altre informazioni sugli identificatori, vedere Identificatori.

Parole chiave C standard

Nel linguaggio C vengono utilizzate le parole chiave seguenti:

auto
break
case
char
const
continue
default
do
double
else
enum

extern
float
for
goto
if
inline1, a
int
long
register
restrict1, a
return

short
signed
sizeof
static
struct
switch
typedef
typeof
typeof_unqual
union
unsigned
void
volatile

while
_Alignas2, a
_Alignof2, a
_Atomic2, b
_Bool1, a
_Complex1, b
_Generic2, a
_Imaginary1, b
_Noreturn2, a
_Static_assert2, a
_Thread_local2, b

1 Parole chiave introdotte in ISO C99.
2 Parole chiave introdotte in ISO C11.
A partire da Visual Studio 2019 versione 16.8, queste parole chiave sono supportate nel codice compilato come C quando vengono specificate le opzioni del /std:c11 compilatore o /std:c17 .
b A partire da Visual Studio 2019 versione 16.8, queste parole chiave vengono riconosciute ma non supportate dal compilatore nel codice compilato come C quando vengono specificate le opzioni del /std:c11 compilatore o /std:c17 .

Non è possibile ridefinire le parole chiave. Tuttavia, è possibile specificare il testo per sostituire le parole chiave prima della compilazione usando le direttive del preprocessore C.

Parole chiave C specifiche di Microsoft

Gli standard ANSI e ISO C consentono agli identificatori con due caratteri di sottolineatura iniziali di essere riservati per le implementazioni del compilatore. La convenzione Microsoft prevede di precedere nomi di parole chiave specifici di Microsoft con caratteri di sottolineatura doppia. Queste parole non possono essere usate come nomi di identificatore. Per una descrizione delle regole per gli identificatori di denominazione, incluso l'uso di caratteri di sottolineatura doppia, vedere Identificatori.

Le parole chiave e gli identificatori speciali seguenti sono riconosciuti dal compilatore C Microsoft:

__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 La __based parola chiave ha usi limitati per le compilazioni di destinazione a 32 bit e a 64 bit.
4 Questi sono identificatori speciali quando vengono usati con __declspec; l'uso in altri contesti non è limitato.
5 Per compatibilità con le versioni precedenti, queste parole chiave sono disponibili sia con due caratteri di sottolineatura iniziali che con un singolo carattere di sottolineatura iniziale quando le estensioni Microsoft sono abilitate.
6 Se non si include <assert.h>, il compilatore Microsoft Visual C esegue il mapping static_assert alla parola chiave C11 _Static_assert .

Le estensioni Microsoft sono attivate per impostazione predefinita. Per semplificare la creazione di codice portabile, è possibile disabilitare le estensioni Microsoft specificando l'opzione /Za (Disabilita estensioni del linguaggio) durante la compilazione. Quando si usa questa opzione, alcune parole chiave specifiche di Microsoft sono disabilitate.

Quando le estensioni Microsoft sono abilitate, è possibile utilizzare le parole chiave elencate in precedenza nei programmi. Per essere conforme allo standard linguistico, la maggior parte di queste parole chiave ha un doppio carattere di sottolineatura iniziale. Le quattro eccezioni, , dllimportdllexportnaked, e threadvengono usate solo con __declspec e non richiedono un doppio carattere di sottolineatura iniziale. Ai fini della compatibilità con le versioni precedenti, sono supportate le versioni con singolo carattere di sottolineatura delle parole chiave rimanenti.

Vedi anche

Elementi di C