728x90
이 오류는 C언어의 예약어(reserved keyword)를 변수 이름, 함수 이름, 구조체 이름 등 식별자로 사용하려고 했을 때 발생합니다. 예약어는 언어의 문법 요소로 이미 특정 기능을 수행하기 위해 정의되어 있기 때문에, 사용자 정의 이름으로 사용할 수 없습니다.
예를 들어 int
, return
, if
, while
등은 예약어이므로 변수 이름이나 함수 이름 등으로 사용할 수 없습니다.
● 오류 예제
#include <stdio.h>
int return = 10; // 오류: 'return'은 예약어
int main() {
printf("%d\n", return);
return 0;
}
컴파일 시 다음과 같은 오류 메시지가 출력됩니다.
error: expected identifier or ‘(’ before ‘return’
● 해결 방법
예약어는 사용자가 식별자로 사용할 수 없으므로, 변수명이나 함수명을 변경해야 합니다. 의미 있는 대체 이름을 사용하세요.
#include <stdio.h>
int result = 10;
int main() {
printf("%d\n", result);
return 0;
}
출력 결과:
10
● 실전 팁
- 예약어는 절대 변수나 함수 이름으로 사용할 수 없습니다.
- 컴파일러가 인식하는 키워드는 각 C 표준(C89, C99 등)에 따라 달라질 수 있으므로 참고 문서를 확인하세요.
- IDE에서 예약어는 보통 색상으로 표시되므로, 식별자로 사용하지 않도록 주의하세요.
C언어에서 예약어는 언어의 핵심 기능을 수행하므로, 이를 식별자로 사용하면 문법 충돌이 발생하게 됩니다. 항상 고유한 사용자 정의 이름을 사용하는 습관을 들이세요.
728x90