2.8 Layout of a C Program
우리는 C 프로그램을 토큰의 집합으로 생각할 수 있다. 토큰은 의미를 바꾸지 않고는 나눌수 없는 캐릭터들의 그룹을 의미하며, 식별자와 키워드가 포함된다. +나 -와 같은 연산자, 쉼표, 세미콜론, 리터럴 문자열 같은 문장부호도 포함된다. 예를 들어서 다음 statement에는 7개의 토큰이 존재한다.
printf("Height : %d\n, height);
printf ( "Height : %d\n , height ) ;
① ② ③ ④ ⑤ ⑥ ⑦
토큰 ①과 ⑤는 식별자이고, 토큰 ③은 리터럴문자열, ②, ④, ⑥ 토큰과 ⑦은 문장부호이다.
대부분의 경우 프로그램에서 토큰 사이의 공간은 중요하지 않다. 극단적으로, 토큰끼리 공간이 아예 없이 합쳐질수도 있다. (두 토큰이 합쳐져 제 3의 토큰이 되는 경우는 제외한다.) 예를 들어, 2.6장의 celsius.c 프로그램에서 대부분의 공간을 삭제할 수 있다. int와 main, float과 fahrenheit같은 토큰은 공백을 제공하고 대부분 공백을 지우는 것이 가능하다.
/* Converts a Fahrenheit temperature to Celsius */
#include <stdio.h>
#define FREEZING_PT 32.0f
#define SCALE_FACTOR (5.0f/9.0f)
int main(void){float fahrenheit,celsius;printf(
"Enter Fahrenheit temperature:");scanf("%f", &fahrenheit);
celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;
printf("Celsius equivalent: %.1f\n", celsius);return 0;}
사실, 페이지가 더 넓다면, 우리는 전체 main함수를 한줄에 놓을수 있다. 하지만, 프로그램 전체를 한 줄에 놓을수는 없다. 각 전처리문은 별도의 줄을 요구하기 때문이다. 이런식으로 프로그램을 압축하는 것은 좋지 않다. 오히려, 프로그램에 공백과 빈 줄을 추가하면 읽고 이해하는 것이 더 쉬워질 수 있다. 다행히도, C는 공백, 탭키, 개행문자를 토큰 사이에 무제한으로 넣을 수 있게한다. 이런 규칙은 프로그램 레이아웃을 위한 몇가지 중요한 결과를 갖게된다.
- statement는 여러줄에 걸쳐 나눠질수 있다. 예를 들어 다음 statement는 너무 길기 때문에 한줄에 끼워넣기가 어렵다.
printf("Dimensional weight (pounds) : %d\n",
(volume + INCHES_PER_POUND -1)/ INCHES_PER_POUND);
- 토큰 사이의 공간은 눈이 토큰을 직관적으로 분리할수 있도록 한다. 이런 이유로, 연산자 앞뒤로 공백을 두기도한다.
volume = height * length * width
- 또한 각 쉼표 뒤에 공백을 넣는다. 어떤 프로그래머들은 심지어, 괄호나 문장기호 주변에 공백을 넣기도 한다.
- Indentation
'C언어 > Basic Features of C' 카테고리의 다른 글
3. Formatted Input/Output 목차 (0) | 2021.02.19 |
---|---|
2.(7) C Fundamentals - 식별자 (0) | 2021.02.15 |
2.(6) C Fundamentals - Defining Names for Constants (0) | 2021.01.13 |
2.(5) C Fundamentals - 입력값 읽기 (0) | 2021.01.07 |
2.(4) C Fundamentals - Variables and Assignment (0) | 2020.12.27 |