티스토리 뷰



C언어를 하다 보면 소스코드의 맨 처음에 #으로 시작하는 코드들이 있습니다. 저도 이걸 처음 보고는 '어? 이건 뭐지?" 했는데요. 이 강좌를 통해서 C언어 소스코드에서 #으로 시작하는 것이 무엇인지 파헤쳐 보도록 하겠습니다.



전처리기지시자(Preprocessor directives)


C언어 소스코드를 보면 #으로 시작하는 코드들이 있는데요. 이 #으로 시작하는 코드를 C언어에서는 전처리기(preprocessor)라고 부릅니다. 전처리기(preprocessor)란 컴파일러가 번역하기 전에 처리한다는 의미입니다. 다시 말하면, 소스코드를 전처리기가 처리한 다음에 그 결과를 컴파일러가 번역한다는 것인데요. 전처리기 지시자들은 전처리기가 할 일을 가르쳐주는 문장으로서 ‘#’ 기호로 시작합니다.


전처리기지시자(Preprocessor directives) 정리

- #으로 시작

- 컴파일 하기 전에 먼저 처리해야 할 일을 수행하도록 명령을 내리는 문장


또한 C언어에서 문장(statement)은 ;(세미콜론)으로 끝나는데 전처리기지시자는 세미콜론으로 끝나지 않는다는 점이 다른 점이라고 할 수 있습니다.




#include 전처리기 지시자


프로그래밍을 할 때 라이브러리라는 말을 들을 때가 있는데 프로그래밍 언어에서 라이브러리는 이미 다른 사람들이 만든 프로그램의 모음을 말합니다. 자주 사용하는 것을 프로그래밍 할 때마다 만들면 시간도 그만큼 많이 들겠죠? 그래서 한 번 만들어 놓고 그 후에 필요한대로 다시 사용할 수 있도록 한 것을 라이브러리라고 생각하면 되겠네요.


표준 라이브러리(standard library)란 프로그래밍 언어와 함께 제공되는 라이브러리를 말합니다. 


다른 프로그래머가 작성한 소스코드를 내 프로그램에서 사용하고 싶으면 해당되는 소스코드를 사용한다고 컴파일러에게 알려줘야 하는데 이 때 사용하는 것이 #include 전처리기 지시자입니다.


/* hello.c */
#include <stdio.h>
int main(void){
printf(“Hello, World!\n”);
return 0;
}



위 소스코드를 보면 printf()라는 함수를 호출해서 사용하고 있는데요. printf() 함수는 표준 라이브러리에서 제공하는 함수로서, 모니터화면(표준출력)에 문자를 출력할 때 사용합니다. 이 printf()함수에 대한 정보는 stdio.h라는 파일에 있기 때문에 컴파일러에게 알려주기 위해 #include를 사용한 것을 알 수 있습니다.


stdio.h처럼 #include 문을 통해 소스코드에 포함하는 파일을 헤더파일(header file)이라 합니다. C언어의 헤더 파일은 확장자가 ".h"입니다.






#include는 어떻게 사용하나요?


#include의 사용법은 다음과 같이 크게 두 가지로 나눌 수 있습니다.


#include의 사용법


1. #include <파일이름>

       보통 표준 라이브러리를 사용할 때

       <>안의 파일을 찾을 때 표준 라이브러리 헤더 파일이 저장된 폴더부터 검색

2. #include “파일이름

       사용자가 작성한 라이브러리를 사용할 때

       현재 디렉토리부터 검색




궁금한 점은 댓글로 남겨주세요

댓글