본문 바로가기

C언어_VisualStudio

#5 프로그램을 구성하는 요소들_주석, 들여쓰기, 전처리기, 함수

오늘은 프로그램을 구성하는 요소들 중 주석, 들여쓰기, 전처리기, 함수(간단하게) 대해서 간단히 정리할 것이다. :-)

 

1. 주석

주석은 프로그램이 하는 일을 설명하는 설명글이다. 주석은 다음과 같은 특징이 있다.

1) 프로그램의 실행결과에 영향을 끼치지 않는다.

2) 주석은 반드시 있어야 되는 부분은 아니다. 

3) 컴파일러는 주석을 무시하며 주석에 대한 기계어 코드를 생성하지 않는다. <- 주석이 아무리 많아도 실행 파일의 크기는 커지지 않는다. 

그러면 주석은 어디에 필요한 것일까? 주석은 컴퓨터를 위한 것이 아니라 프로그램을 읽는 사람을 위한 것이다. 왜냐하면 주석은 프로그램의 가독성을 높이기 때문이다. 주석에는 보통 프로그램의 구조와 동작을 설명해주는 문장들이 들어간다. 따라서 주석은 매우 중요하다. 자신이 만든 프로그램을 재검토하기 위한 프로그래머를 위할 수도 있고 다른 사람의 코드를 수정하는 프로그래머를 위할 수도 있다. 혹은 타인이 프로그램을 보았을 때 주석이 있어서 훨씬 쉽게 프로그램의 내용을 이해할 수 있도록 도와주는 역할을 한다. 아무튼 주석은 엄청 중요하다. 특히, 프로그램이 커지고 복잡해질수록 그렇다. 따라서 주석을 사용하여 프로그램의 구조와 동작을 설명할 수 있도록 훈련하면 좋다. 주석에는 코드를 작성한 의도를 명확히 나타내는 것이 좋다. 

 

주석 달기

주석은 한줄 또는 여러 줄로 달 수 있다. 작성자, 작성 목적, 작성 일자, 코드 설명 등을 적는다. 주석은 일반적으로 많을수록 좋지만 누구나 쉽게 알 수 있는 문장을 설명하는 불필요한 주석은 넣을 필요가 없다. 양보다는 질이다. 

/* 한줄 주석 */

/* 
여러 줄 주석
*/

 

현재의 C에서는 이줄 슬래시(//)를 사용하여 주석을 달 수 있다. 현재의 위치에서부터 줄의 끝까지가 주석이라는 것을 나타낸다. Visual C++를 비롯한 많은 컴파일러가 이중 슬래시를 C언어에서도 지원하고 있다. 

// 이중 슬래시로 주석 달기

 

단, 주석안에 다른 주석이 들어가면 안 된다. 

/*/*이런 형식의 주석은 잘못 된 것임!*/*/

 

주석 스타일

주석을 붙이는데도 사람만다 스타일이 다르다. 보통, C의 주석 스타일(type 1)은 다음과 같다. 또는 시각적으로 어디가 주석인지 쉽게 나타내는 것(type2)을 선호하는 다음과 같은 방식을 가지는 사람들도 있다.

//type1
/*
작성자
작성 목적
작성 일자
*/
//type2
/**************
*작성자
*작성 목적
*작성 일자
**************/

 

코드를 작성하다보면 자신만의 주석 스타일이 생기는 것 같다. 나 같은 경우는 이중 슬래시(//)를 사용하여 한 줄씩 나타내는 것을 더 선호하는 편이다. 

 

2. 들여쓰기

들여 쓰기는 소스 코드의 가독성을 높이기 위해 같은 수준에 있는 문장들을 왼쪽 끝에서 몇 자 안으로 들여 쓰는 것이다. 들여 쓰기를 잘하면 소스 코드를 읽을 때 편하다. 들여쓰기가 잘 되어있지 않으면 컴파일에는 문제가 없지만 사용자 입장에서 코드를 읽기 불편해진다. 특히, 규모가 큰 프로그램의 경우 들여쓰기를 하지 않으면 아주 읽기 어려워진다. 

또한, 문장은 한 줄에 하나만 사용하는 것이 좋다. 나는 처음에 함수를 반복적으로 적는 게 귀찮아서 한 줄로 쭉 이어서 적고는 했는데, 나중에 공부하려고 내가 작성한 코드를 다시 볼 때 읽기가 어려웠다. 확실히 가독성이 떨어졌다. 또 문장과 문장 사이에 적절한 빈 줄도 가독성에 도움이 된다. 

 

3. 전처리기

#include <stdio.h>

위 문장은 전처리기 지시어이다. 모든 전처리기 지시어는 # 기호로 시작하고 첫 번째 열부터 시작하는 것이 보통이다. 위의 문장은 헤더 파일 stidio.h를 소스 코드 안에 포함시키라는 의미의 문장이다.

헤더 파일(header file)은 코드의 일부분이 들어 있는 텍스트 파일로 .h의 확장자를 가진다. stdio.h는 standard input output의 줄임말로 표준 입출력을 의미한다. 표준 입력은 키보드로부터의 입력을 의미하고, 표준 출력은 모니터로의 출력을 의미한다. 따라서 scanf()나 printf()를 사용하려면 #include <stdio.h>를 만드시 적어주어야 한다. 

 

4. 함수

int main(void){

...

}

위 문장은 함수 main(void)을 정의하는 문장이다. 함수는 특정 기능을 수행하는 처리 단계들을 괄호{}로 묶어서 이름을 붙인 것이다. 함수는 입력을 받아서 지시대로 처리하고 출력하는 것이다. 함수 안에 문장을 넣어서 작업이 시행되게 한다. 문장은 프로그램을 이루는 가장 기본적인 단위이다. 문장이 모여서 함수가 되고 함수가 모여서 프로그램이 된다. 문장의 끝은 항상 세미콜론(;)으로 끝나게 된다.