Słowa kluczowe języka C
Słowa kluczowe to słowa, które mają specjalne znaczenie dla kompilatora języka C. W fazach tłumaczenia 7 i 8 identyfikator nie może mieć takiej samej pisowni i wielkości liter jak słowo kluczowe C. Aby uzyskać więcej informacji, zobacz fazy tłumaczenia w dokumentacji preprocesora. Aby uzyskać więcej informacji na temat identyfikatorów, zobacz Identyfikatory.
Słowa kluczowe języka C w warstwie Standardowa
Język C używa następujących słów kluczowych:
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 Słowa kluczowe wprowadzone w iso C99.
2 Słowa kluczowe wprowadzone w iso C11.
A Począwszy od programu Visual Studio 2019 w wersji 16.8 te słowa kluczowe są obsługiwane w kodzie skompilowanym jako C po określeniu /std:c11
opcji kompilatora lub /std:c17
.
b Począwszy od programu Visual Studio 2019 w wersji 16.8, te słowa kluczowe są rozpoznawane, ale nie są obsługiwane przez kompilator w kodzie skompilowanym jako C po określeniu /std:c11
opcji kompilatora lub /std:c17
.
Nie można ponownie zdefiniować słów kluczowych. Można jednak określić tekst, aby zastąpić słowa kluczowe przed kompilacją przy użyciu dyrektyw preprocesora języka C.
Słowa kluczowe języka C specyficzne dla firmy Microsoft
Standardy ANSI i ISO C umożliwiają zarezerwowanie identyfikatorów z dwoma wiodącymi podkreśleniami na potrzeby implementacji kompilatora. Konwencja firmy Microsoft ma poprzedzać nazwy słów kluczowych specyficznych dla firmy Microsoft z podwójnymi podkreśleniami. Tych słów nie można używać jako nazw identyfikatorów. Aby uzyskać opis reguł nazewnictwa identyfikatorów, w tym użycia podwójnych podkreśleń, zobacz Identyfikatory.
Poniższe słowa kluczowe i specjalne identyfikatory są rozpoznawane przez kompilator 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 Słowo __based
kluczowe ma ograniczone zastosowania do kompilacji docelowych 32-bitowych i 64-bitowych.
4 Są to specjalne identyfikatory używane w __declspec
programie ; ich użycie w innych kontekstach jest nieograniczone.
5 W celu zachowania zgodności z poprzednimi wersjami te słowa kluczowe są dostępne zarówno z dwoma wiodącymi podkreśleniami, jak i jednym wiodącym podkreśleniem po włączeniu rozszerzeń firmy Microsoft.
6 Jeśli nie dołączysz <pliku assert.h>, kompilator Microsoft Visual C mapuje static_assert
na słowo kluczowe C11 _Static_assert
.
Rozszerzenia firmy Microsoft są domyślnie włączone. Aby ułatwić tworzenie kodu przenośnego, można wyłączyć rozszerzenia firmy Microsoft, określając opcję /Za (Wyłącz rozszerzenia języka) podczas kompilacji. W przypadku korzystania z tej opcji niektóre słowa kluczowe specyficzne dla firmy Microsoft są wyłączone.
Po włączeniu rozszerzeń Microsoft, możesz używać słów kluczowych wymienionych powyżej w swoich programach. W celu zachowania zgodności ze standardem języka większość tych słów kluczowych ma podwójne podkreślenie wiodące. Cztery wyjątki, dllexport
, dllimport
, naked
i thread
, są używane tylko z elementami __declspec
i nie wymagają wiodącego podwójnego podkreślenia. W celu zapewnienia zgodności z poprzednimi wersjami, wersje z pojedynczym podkreśleniem reszty słów kluczowych są obsługiwane.