토큰(Token)은 프로그램을 구성하는 가장 작은 단위 요소로, 컴파일러가 의미 있게 해석하는 기본 구성 요소입니다. C 언어의 소스 코드는 이러한 토큰들이 모여 이루어지며, 컴파일러는 토큰 단위로 코드를 분석합니다.
토큰의 주요 종류는 다음과 같습니다.
- 키워드(Keywords)
- 식별자(Identifiers)
- 상수(Constants)
- 문자열(Strings)
- 연산자(Operators)
그럼 하나씩 자세히 살펴보겠습니다.
키워드(Keywords)
키워드는 C 언어에서 미리 정의된 예약어(reserved word)로, 각각 고유한 기능과 역할이 부여되어 있습니다. 키워드를 통해 C 언어가 제공하는 다양한 기능을 사용할 수 있으며, 컴파일러는 이 단어들에 대해 특별한 의미로 해석하기 때문에 프로그래머가 임의로 사용할 수 없습니다.
C89(ANSI C) 표준 기준으로 C 언어에는 총 32개의 키워드가 있습니다.
| auto | double | int | struct |
| break | else | long | switch |
| case | enum | register | typedef |
| char | extern | return | union |
| continue | for | signed | void |
| do | if | static | while |
| default | goto | sizeof | volatile |
| const | float | short | unsigned |
참고로 C99, C11 등 이후 표준에서는 _Bool, restrict, _Alignas 등 추가 키워드가 도입되었습니다.
식별자(Identifiers)
식별자는 C 프로그램 내의 모든 구성 요소를 지칭하는 이름으로, 변수, 함수, 배열 등에 이름을 붙일 때 사용됩니다. 식별자는 사용자가 직접 정의하는 이름이며, 알파벳, 숫자, 밑줄(‘_’)로 구성됩니다. 단, 식별자의 이름은 키워드와 동일하게 지을 수 없으며, 키워드는 식별자로 사용할 수 없습니다.
C 식별자 명명 규칙
반드시 알파벳 또는 밑줄(‘_’)로 시작해야 합니다.
알파벳, 숫자, 밑줄만 사용할 수 있으며, 그 외의 특수문자나 문장부호는 허용되지 않습니다.
이름에 공백(white-space)을 포함할 수 없습니다.
키워드와 같은 이름을 사용해서는 안 됩니다.
최대 31자까지만 유효합니다.
문자열(Strings)
문자열은 널 문자(\0)로 끝나는 문자 배열입니다. 이 널 문자는 문자열이 여기서 끝난다는 것을 나타내며, 문자열은 항상 큰따옴표(“ ”)로 묶어서 표현합니다.
C 언어에서 문자열을 선언하는 방법은 다음과 같습니다.
- char string[20] = {‘s’,’t’,’u’,’d’,’y’, ‘\0’};
- char string[20] = "demo";
- char string[] = "demo";
지금까지 배운 내용을 바탕으로 C 언어의 토큰이 실제로 어떻게 사용되는지 예제를 통해 확인해 보겠습니다.
예제 코드
#include <stdio.h>
int main() {
// char 키워드 사용
char a1 = 'H';
int b = 8;
float d = 5.6;
// 문자열 선언
char string[200] = "demodotcom";
if(b<10)
printf("Character Value : %c\n",a1);
else
printf("Float value : %f\n",d);
printf("String Value : %s\n", string);
return 0;
}실행 결과
Character Value : H String Value : demodotcom
위 예제에서 char, int, float, if, return은 키워드에 해당하고, a1, b, d, string, main, printf는 식별자, 'H', 8, 5.6은 상수, "demodotcom", "Character Value : %c\n" 등은 문자열에 해당합니다. 즉, 하나의 짧은 코드 안에도 다양한 종류의 토큰이 함께 사용되는 것을 확인할 수 있습니다.