C 언어 예약어
IT 위키
더 많은 작업
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)은 컴파일러와 표준 라이브러리용으로 예약되어 있으므로, 문법상 허용되더라도 쓰지 않는 것이 좋다.