Udostępnij za pośrednictwem


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
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 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:

__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 Słowo __based kluczowe ma ograniczone zastosowania do kompilacji docelowych 32-bitowych i 64-bitowych.
4 Są to specjalne identyfikatory używane w __declspecprogramie ; 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, nakedi 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.

Zobacz też

Elementy języka C