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
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 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:
__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 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, , dllimport
dllexport
naked
, e thread
vengono 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.