본문 바로가기
📚 STUDY/🔥 C

[2-8] C 프로그램의 레이아웃

by 엄지잉 2024. 9. 2.

- C 프로그램을 일종의 토큰(의미를 구성하는 최소 단위)의 연속이라고 이해할 수 있음.

 

printf  (  "Height: %d\n"  ,    height  )  ;
 ①    ②          ③          ④     ⑤    ⑥⑦

 

- ①번과 ⑤번 토큰은 식별자들이고 ③번 토큰은 스트링 리터럴이며, 나머지 토큰들은 전부 구두점들임.

 

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를 작성할 때 스페이스, 탭, 개행 등을 통해 토큰 사이에 넓은 공간을 만들어낼 수 있음.

  • 토큰 사이의 스페이스는 가독성을 높여줌.
  • 쉼표 이후에도 줄을 띄워주도록 하자.
  • 들여쓰기는 함수 등을 찾기 쉽게 해줌.
  • 빈 줄은 프로그램을 논리 흐름 덩어리로 구분 → 독자로 하여금 프로그램의 구조를 쉽게 파악할 수 있게 해줌.

위 코드의 main 함수를 따로 보면,

int main(void)
{
    float fahrenheit;
    float celsius;

    printf("Enter Fahrenheit temperature: ");
    scanf("%f", &fahrenheit);

    celsius = (fahrenheit - FREEZING_PT) * SCALE_FACTOR;

    printf("Celsius equivalent: %.1f\n", celsius);

    return 0;
}
  • 연산자들(=, -, *) 사이에 줄을 띄워 가독성 + 연산을 돋보이게 만들어줌.
  • 선언, 구문들을 들여쓰기 함으로써 이들이 main 함수에 속한다는 것을 쉽게 알 수 있음.
  • main 함수가 빈 줄에 의해 5개의 덩어리로 나뉨.
  • ① fahrenheit, celciuss 변수 선언 ② 화씨 온도 입력받기 ③ celcius 값 계산 ④ 섭씨 온도 출력 ⑤ OS에 값 반환

❗ 토큰 내에 공간을 만들게 되면, 프로그램의 의미가 바뀌거나 에러가 발생하게 됨❗

// 예시1
fl oat fahrenheit, celsius; /*** WRONG ***/

// 예시2
fl
oat fahrenheit, celsius; /*** WRONG ***/
  • 위와 같이 작성하면, 프로그램을 컴파일 할 때 에러가 발생할 것임.

 

 

💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.

'📚 STUDY > 🔥 C' 카테고리의 다른 글

[3-1] printf 함수  (4) 2024.09.02
Q&A (GCC, GNU, 함수, 주석, 식별자, 레이아웃..)  (4) 2024.09.02
[2-7] 식별자  (0) 2024.09.02
[2-6] 상수 이름 정의하기  (0) 2024.08.22
[2-5] 입력값 읽기  (0) 2024.08.22