본문 바로가기

C++/C, C++, STL

Microsoft C++ learn: 토큰(Tokens) 및 문자 집합(Characters sets)

토큰(Token)과 공백(Space)

C++은 TokenSpace로 구성됩니다. Token은 컴파일러가 해석 할 수 있는 C++의 최소 단위입니다.

더보기

Space는 Token을 구분하는 단위입니다.

공백(Space), 가로 또는 세로 탭(Horizontal or vertical tabs), 개행(New lines), 폼 피드(Form feeds), 주석(Comments) 등이 Token을 구분하는 단위가 됩니다.

키워드(Keywords)

C++ 키워드는 특별한 의미를 지닌 미리 정의된 식별자의 일종입니다.

키워드는 표준 C++ 키워드Microsoft 한정 C++ 키워드 등이 존재하며, 미리 정의된 키워드는 프로그램에서 변수 명 등으로 사용 될 수 없습니다.

대표적인 표준 C++ 키워드는 일상적으로 C++ 개발에 사용되는 키워드와 변수 타입을 의미하는 키워드를 포함합니다.

반면 두 개의 연속된 밑줄(Underline)로 표현되는 키워드는 Microsoft 한정 C++ 키워드입니다.

마찬가지로 변수 타입을 의미하는 키워드 역시 존재합니다.

식별자(Identifiers)

식별자는 C++ 프로그램에서 유의미한 이름을 지칭하기 위한 구분입니다.

예를 들어 변수 이름, 클래스 이름, 열거형 이름, 매크로 이름 등 프로그래머가 작명하는 모든 것이 식별자입니다.

cpp
닫기
int hello; int __hello; int HELLO; int hello0404;

식별자는 새로 정의된 이름이기 때문에 기존이 미리 정의된 키워드와 중복 될 수 없습니다.

cpp
닫기
int auto; int class; int bool;

또한 특수 문자를 포함하거나 숫자로 시작하는 식별자는 허용되지 않습니다.

cpp
닫기
int @hello; int hello#; int 00hello;

리터럴(Literals)

C++의 상수 역시 하나의 토큰을 구성합니다. 상수는 변수에 할당되는 값으로써 의미를 갖습니다. 

cpp
닫기
int a = 1000; bool b = true; float c = 1.23f;

마찬가지로 문자열 역시 문자열 상수로써 리터럴로 표현됩니다.

cpp
닫기
auto c = "hello world";

리터럴은 변수에 할당됨으로써 의미를 갖기 때문에 단독으로 사용되지 않습니다.

cpp
닫기
1234;

연산자(Operators)

연산자는 변수의 값을 가공하기 위한 토큰으로 사용됩니다.

예를 들어 두 개의 값을 더하는 + 연산자와 두 개의 값의 차를 구하는 - 연산자, 두 개의 값의 곱을 구하는 * 연산자 등이 있습니다.

연산자는 우선 순위에 따라서 실행 순서가 달라집니다. 대표적으로 + 연산자보다 * 연산자의 우선 순위가 높아 산술 결과에 차이가 발생하는 문제 등에 주의해야합니다.

cpp
닫기
int a = 10; int b = 20; int c = 30; // 10 + (20 * 30) = 610 std::cout << (a + b * c) << std::endl;

연산자 우선 순위와 관련한 자세한 내용은 C++ operator precedence and associativity table을 참고합니다.