C언어에서는 키워드 외에는 모든것이 식별자로 처리됩니다.

식별자는 변수, 상수, 함수 및 사용자 정의 데이터(구조체, 클래스 등)에 지정된 이름이 될 수 있습니다.


변수 이름은 영문(대문자, 소문자), 숫자(0~9) 및 특수문자(밑줄 _)로 구성될 수 있습니다.

(일부 컴파일러는 한글을 지원합니다.)


그러나 어떤 변수의 이름도 숫자로 시작할 수 없다고 배웠습니다.

왜일까요?

그 이유를 알아보도록 하겠습니다.


컴파일러에는 다음과 같은 7가지 단계가 존재합니다.


1. Lexical Analysis (어휘 분석)

2. Syntax Analysis (구문 분석)

3. Semantic Analysis (시맨틱 분석)

4. Intermediate Code Generation (중간 코드 생성)

5. Code Optimization (코드 최적화)

6. Code Generation (코드 생성)

7. Symbol Table (심볼 테이블)


각 단계의 자세한 설명은 추후에 하도록 하겠습니다.


컴파일러는 코드 조각을 컴파일하면서 1. 어휘분석 단계에서 역 추적을 피할 수 있습니다.

예를들어 Yeolco라는 변수를 컴파일 1. 어휘분석 단계에서 문자 'Y'를 만날때 컴파일러는 즉시 식별자를 알 수 있습니다.

그러나, 142Yeolco12 같은 변수를 컴파일러는 숫자 또는 식별자가 'Y'에 도달할때 까지 결정할 수 없으며

1. 어휘분석 단계에서 변수임을 식별하기위해 역 추적이 필요합니다.

그러나 이는 컴파일러에서 지원되지 않습니다.




질문 사항은 모두 커뮤니티에서 받습니다. -> 커뮤니티 바로가기

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.

'C, C++' 카테고리의 다른 글

C 정적(static) 변수  (0) 2018.10.29
C 변수 선언 및 키워드  (0) 2018.10.25
C 표준 입력 함수 scanf  (0) 2018.10.23
C 표준 출력 함수 printf()  (0) 2018.10.22
C++ 가상 함수(Virtual Function)  (8) 2018.10.19
C++ 연산자 오버로딩  (2) 2018.10.12
C++ 함수 오버로딩  (0) 2018.10.11
C/C++ 메모리 동적할당  (0) 2018.10.11

to Top