Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++ 변수가 숫자로 시작하지 않는 이유


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