본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

C 언어 예약어(Keyword, Reserved Word)는 C 언어 문법이 특별한 뜻으로 미리 정해 둔 단어로, 변수·함수 같은 식별자 이름으로 쓸 수 없다.

C89(ANSI C) 표준의 예약어는 32개다. 모두 소문자다.

용도 예약어
자료형 char int float double void
자료형 한정 short long signed unsigned const volatile
기억 부류 auto register static extern typedef
사용자 정의형 struct union enum
제어문 if else switch case default for while do break continue goto return
연산자 sizeof

C99 에서 inline, restrict, _Bool, _Complex, _Imaginary 가, C11 에서 _Alignas, _Atomic, _Generic, _Noreturn, _Static_assert, _Thread_local 등이 더해졌다.

printf, main, NULL 은 예약어가 아니다. 앞의 둘은 함수 이름, NULL 은 헤더에 정의된 매크로다.

변수·함수·배열 이름을 지을 때 지켜야 하는 규칙이다.

  • 영문 대소문자, 숫자, 밑줄(_)만 쓸 수 있다. 공백과 $, -, # 같은 특수문자는 쓸 수 없다.
  • 첫 글자에 숫자가 올 수 없다. 밑줄로는 시작할 수 있다.
  • 예약어는 그대로 쓸 수 없다. 예약어를 일부로 포함하는 것은 괜찮다.
  • 대문자와 소문자를 구별한다. Count 와 count 는 다른 이름이다.
이름 사용 이유
data02 가능 영문자로 시작하고 영문자·숫자만 썼다
int01 가능 예약어 int 를 포함하지만 예약어 자체는 아니다
_sub 가능 밑줄로 시작할 수 있다
short 불가 예약어다
2nd 불가 숫자로 시작한다
my-var 불가 - 는 쓸 수 없다

밑줄 뒤에 대문자가 오거나 밑줄 두 개로 시작하는 이름(_Value, __x)은 컴파일러와 표준 라이브러리용으로 예약되어 있으므로, 문법상 허용되더라도 쓰지 않는 것이 좋다.