C 키워드
키워드는 C 컴파일러에서 특별한 의미를 가진 단어입니다. 7번째 및 8번째 변환 단계에서는 식별자가 C 키워드와 같은 철자 및 대/소문자를 사용할 수 없습니다. 자세한 내용은 전처리기 참조의 변환 단계를 참조하세요. 식별자에 대한 자세한 내용은 식별자를 참조하세요.
표준 C 키워드
C 언어는 다음의 키워드를 사용합니다.
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 ISO C99에 도입된 키워드입니다.
2 ISO C11에 도입된 키워드입니다.
a Visual Studio 2019 버전 16.8부터 /std:c11
또는 /std:c17
컴파일러 옵션이 지정된 경우 이러한 키워드가 C로 컴파일된 코드에서 지원됩니다.
b Visual Studio 2019 버전 16.8부터 /std:c11
또는 /std:c17
컴파일러 옵션이 지정된 경우 이러한 키워드가 인식되지만 C로 컴파일된 코드의 컴파일러에서는 지원되지 않습니다.
키워드를 다시 정의할 수는 없습니다. 그러나 컴파일 전에 C 전처리기 지시문을 사용하여 키워드를 대체할 텍스트를 지정할 수 있습니다.
Microsoft 전용 C 키워드
ANSI 및 ISO C 표준을 사용하면 두 개의 선행 밑줄이 쳐진 식별자를 컴파일러의 구현용으로 예약할 수 있습니다. Microsoft 규칙은 이중 밑줄이 쳐진 Microsoft 전용 키워드 이름 앞에 있게 됩니다. 이들 단어는 식별자 이름으로 사용할 수 없습니다. 두 개의 밑줄을 사용하는 경우를 포함하여 식별자 명명 규칙에 대한 자세한 내용은 식별자를 참조하세요.
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__based
키워드의 경우 32 비트 및 64 비트 대상 컴파일에서 제한적으로 사용됩니다.
4 이들은 __declspec
과 함께 사용되는 특수 식별자이며 다른 컨텍스트에서는 사용이 제한되지 않습니다.
5 이전 버전과의 호환성을 위해 이러한 키워드는 Microsoft 확장이 사용하도록 설정된 경우 두 개의 선행 밑줄과 단일 선행 밑줄 둘 다와 함께 사용할 수 있습니다.
6<assert.h>를 포함하지 않는 경우 Microsoft Visual C 컴파일러는 static_assert
를 C11 _Static_assert
키워드에 매핑합니다.
Microsoft 확장은 기본적으로 사용하도록 설정됩니다. 이식 가능한 코드 작성을 지원하려면 /Za (언어 확장 사용 안 함) 옵션을 지정하여 Microsoft 확장을 사용하지 않을 수 있습니다. 이 옵션을 사용하면 몇 가지 Microsoft 관련 키워드를 사용할 수 없습니다.
Microsoft 확장을 사용하면 위에 나열된 키워드를 프로그램에서 사용할 수 있습니다. 언어 표준을 준수하기 위해 이러한 키워드의 대부분은 두 개의 밑줄이 앞에 옵니다. 네 가지 예외 사항인 dllexport
, dllimport
, naked
및 thread
는 __declspec
과 함께만 사용되며 선행 밑줄이 필요하지 않습니다. 이전 버전과의 호환성을 위해 나머지 키워드에는 밑줄 한 개가 옵니다.