Namespaces
Variants

C keywords

From cppreference.net
< c

이것은 C 언어의 예약 키워드 목록입니다. 언어에서 사용되기 때문에, 이러한 키워드는 재정의할 수 없습니다. 예외적으로, 이들은 attribute-token s 에서는 예약어로 간주되지 않습니다. (since C23)

alignas (C23)
alignof (C23)
auto
bool (C23)
break
case
char
const
constexpr (C23)
continue
default
do
double
else
enum

extern
false (C23)
float
for
goto
if
inline (C99)
int
long
nullptr (C23)
register
restrict (C99)
return
short
signed

sizeof
static
static_assert (C23)
struct
switch
thread_local (C23)
true (C23)
typedef
typeof (C23)
typeof_unqual (C23)
union
unsigned
void
volatile
while

_Alignas (C11) (C23에서 사용 중단됨)
_Alignof (C11) (C23에서 사용 중단됨)
_Atomic (C11)
_BitInt (C23)
_Bool (C99) (C23에서 사용 중단됨)
_Complex (C99)
_Decimal128 (C23)
_Decimal32 (C23)
_Decimal64 (C23)
_Generic (C11)
_Imaginary (C99)
_Noreturn (C11) (C23에서 사용 중단됨)
_Static_assert (C11) (C23에서 사용 중단됨)
_Thread_local (C11) (C23에서 사용 중단됨)

밑줄로 시작하는 가장 흔한 키워드들은 일반적으로 편의 매크로를 통해 사용됩니다:

키워드 사용 용도 정의 위치
_Alignas (C11) (C23에서 사용 중단됨) alignas (C23에서 제거됨) stdalign.h
_Alignof (C11) (C23에서 사용 중단됨) alignof (C23에서 제거됨) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) (매크로 없음)
_Bool (C99) (C23에서 사용 중단됨) bool (C23에서 제거됨) stdbool.h
_Complex (C99) complex complex.h
_Decimal128 (C23) (매크로 없음)
_Decimal32 (C23) (매크로 없음)
_Decimal64 (C23) (매크로 없음)
_Generic (C11) (매크로 없음)
_Imaginary (C99) imaginary complex.h
_Noreturn (C11) (C23에서 사용 중단됨) noreturn stdnoreturn.h
_Static_assert (C11) (C23에서 사용 중단됨) static_assert (C23에서 제거됨) assert.h
_Thread_local (C11) (C23에서 사용 중단됨) thread_local (C23에서 제거됨) threads.h

일부 키워드는 더 이상 사용되지 않지만 호환성을 위해 대체 철자로 유지됩니다. 이러한 키워드는 해당 키워드를 사용할 수 있는 모든 곳에서 사용할 수 있습니다.

키워드 대체 표기법
alignas (C23) _Alignas (C11) (C23에서 사용 중단됨)
alignof (C23) _Alignof (C11) (C23에서 사용 중단됨)
bool (C23) _Bool (C99) (C23에서 사용 중단됨)
static_assert (C23) _Static_assert (C11) (C23에서 사용 중단됨)
thread_local (C23) _Thread_local (C11) (C23에서 사용 중단됨)

이러한 키워드들의 철자, 대체 형태, 또는 true false 가 미리 정의된 매크로로 구현되는지 여부는 명시되어 있지 않습니다.

이중 밑줄 __ 로 시작하거나 밑줄 _ 뒤에 대문자가 오는 모든 이름은 예약되어 있습니다: 자세한 내용은 식별자 를 참조하십시오.

디그래프 <% , %> , <: , :> , %: , 그리고 %:%: 표준 토큰을 표현하는 대체 방법 을 제공한다는 점에 유의하십시오.

다음 토큰들은 preprocessor 지시문의 컨텍스트 내에서 사용될 때 preprocessor에 의해 인식됩니다:

if
elif
else
endif

ifdef
ifndef
elifdef (C23)
elifndef (C23)
define
undef

include
embed (C23)
line
error
warning (C23)
pragma

defined
__has_include (C23)
__has_embed (C23)
__has_c_attribute (C23)

**번역 결과:** - 모든 C++ 전처리기 지시문과 키워드는 원문 그대로 유지됨 - HTML 태그와 속성은 변경되지 않음 - ` ` 태그 내의 코드는 번역되지 않음 - (C23) 표시는 그대로 유지됨 - 표 구조와 서식이 완전히 보존됨

다음 토큰들은 전처리기 지시문의 컨텍스트 외부 에서 사용될 때 전처리기에 의해 인식됩니다:

_Pragma (C99)

다음 추가 키워드는 확장으로 분류되며 조건부 지원됩니다:

asm
fortran

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 6.4.1 키워드 (p: 53)
  • J.5.9 fortran 키워드 (p: 601)
  • J.5.10 asm 키워드 (p: 601)
  • C17 표준 (ISO/IEC 9899:2018):
  • 6.4.1 Keywords (p: 42-43)
  • J.5.9 The fortran keyword (p: 422)
  • J.5.10 The asm keyword (p: 422)
  • C11 표준 (ISO/IEC 9899:2011):
  • 6.4.1 Keywords (p: 58-59)
  • J.5.9 The fortran keyword (p: 580)
  • J.5.10 The asm keyword (p: 580)
  • C99 표준 (ISO/IEC 9899:1999):
  • 6.4.1 Keywords (p: 50)
  • J.5.9 The fortran keyword (p: 514)
  • J.5.10 The asm keyword (p: 514)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 3.1.1 Keywords
  • G.5.9 The fortran keyword
  • G.5.10 The asm keyword

참고 항목

C++ documentation for keywords