본문 바로가기

프로그래밍

C/C++ 전처리문 #include

C/C++ 전처리문 #include

전처리문은 실제 컴파일 이전에 처리되는 문장을 가리킵니다.
이 작업은 사용자가 실제 작성한 소스 이전에 작업을 수행하지요.
사용자가 한 일을 처리하기 전에 처리된다는 것.


#include부터 살펴보면, 지난번에 했던 것처럼 그림의 소스는
iostream을 불러왔습니다.

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include

이곳에 가시면 #include전처리문이 가져오는 대상이 모두 모여있습니다.


해당파일을 한번 열어보겠습니다.


음... 다양한 내용들이 써 있는데요, extern이나 istream같은 내용은 아직은 무슨 내용
인지 모르겠지만 java에서 보던 상속이나 구현과 비슷한 기능을 할 것 같습니다.
다음에 정리해봐야겠네요.

아무튼 간단히 살펴봤는데 #include는 컴파일러가 위치한 디렉토리 하위에 
include 폴더에 들어있는 파일을 불러옵니다. 
불러온 파일은 헤더 파일일 수도 있고 일반 파일일 수도 있는데, 
이 같은 파일들이 내용은
변수나 전처리문으로서 정의된 상수, 함수의 원형, 자료 구조등 사용자가 쓸 내용이
담겨 있습니다. 
자신이 직접작성한 소스가 다른 프로그램에도 필요하다면 이런식으로 작성하여 
배포하는 것이 효율성이 좋겠네요.

근데 여기서!
사실 위 파일에는 이런 것이 있다 식의 정의만 있을뿐 실제 내용 기술은 없습니다.
헤더파일은 말그대로 머리만 있는 것인데, 몸통은 어딨는가?
탐색기에서 검색을 해보셨다면 아시겠지만. 헤더파일명.cpp나 헤더파일명.c 형식으로
다른 경로에 저장되어 있습니다. 
둘중에 하나라도 없으면, include가 안되겠지요? 머리가 없으면 아에 안되고, 몸통이 
없으면 되도 불러올 소스가 없구요
해서 괜히 따로 안건드리시는 편이 낫겠습니다.

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src

만약 자신이 직접 만든 코드를 include하고 싶으시다면 위에 기술한 헤더파일이 위치하는 경로에 헤더파일을 위치시키고, 소스코드는 위의 경로에 삽입하면 되겠습니다.

그것이 귀찮다! 나중에 패키징 할 것이다! 하면 
#include "절대경로\헤더파일명" 식으로 하면 되겠네요~

C/C++ 헤더파일 경로지정 설정의 예입니다.


위의 세 가지 모두 같은 파일을 include해달라고 명령한 것입니다.

이 같은 헤더 파일의 삽입은 자신이 프로그래밍하는 소스에 필요한 함수들을 사용하기 
위한동작인데 쓰지도 않는 헤더를 삽입하여 괜히 소스크기를 늘리지 말고 필요한 것만 
늘리시는 것이 좋겠습니다~

#include시 고려할 기본적인 사항
1. 사용할 기능을 가진 함수를 찾고, 
2 사용할 함수를 포함하는 헤더파일을 찾아서 #include 로 삽입