C/C++에서 변수 이름에는 알파벳, 숫자 및 밑줄( _ ) 문자가 포함될 수 있습니다. C/C++ 언어에는 몇 가지 키워드가 있습니다. 그것들을 제외하고는 모든 것이 식별자로 취급됩니다. 식별자는 변수, 상수, 함수 등의 이름입니다.
컴파일러에는 다음과 같이 7단계가 있으므로 숫자로 시작하는 식별자를 지정할 수 없습니다.
- 어휘 분석
- 구문 분석
- 의미 분석
- 중간 코드 생성
- 코드 최적화
- 코드 생성
- 기호표
위의 어느 것도 변수가 숫자로 시작하는 것을 지원하지 않습니다. 이는 숫자 뒤의 알파벳에 도달할 때까지 가 숫자인지 식별자인지 컴파일러가 혼동하기 때문입니다. 따라서 컴파일러는 지원되지 않는 어휘 분석 단계로 역추적해야 합니다. 컴파일러는 첫 번째 문자를 본 후 토큰을 식별자 또는 리터럴로 식별할 수 있어야 합니다.
다음은 C에서 변수 선언을 보여주는 예제입니다.
예
#include <stdio.h> int main() { int 5s = 8; int _4a = 3; int b = 12; printf("The value of variable 5s : %d", 5s); printf("The value of variable _4a : %d", _4a); printf("\nThe value of variable b : %d", b); return 0; }
위의 프로그램은 변수가 5로 시작하기 때문에 "invalid suffix "s" on integer constant" 오류가 발생합니다. 이것을 제거하면 프로그램이 올바르게 작동합니다.
새로운 프로그램을 보여주는 예는 다음과 같습니다.
예
#include <stdio.h> int main() { int _4a = 3; int b = 12; printf("The value of variable _4a : %d", _4a); printf("\nThe value of variable b : %d", b); return 0; }
출력
위 프로그램의 출력은 다음과 같습니다.
The value of variable _4a : 3 The value of variable b : 12