전처리 명령
I. include
포함 전처리 명령은 헤더 파일을 현재의 소스코드에 포함하기 위해 사용한다.
헤더 파일이란 함수나 사용자 정의 자료형에 대한 선언을 모아놓은 참고서라고 볼 수 있는데, 이를 포함하는 이유는 누군가 만든 라이브러리나 다른 소스 파일에 구현된 기능을 가져다 쓰기 위함이다.
예를 들어, main 함수가 정의된 파일이 아닌 다른 파일에 함수를 작성한다고 생각해보자. 먼저 확장자 '.h'와 '.c'로 끝나는 두가지 파일이 필요하다.
직접 만든 함수 두개가 myfuctions의 헤더 파일, 소스 파일에 선언과 정의가 작성되었다. 이제 main.c에서 이 함수를 사용하기 위해서는 맨 윗줄에 myfunctions.h를 포함하면 된다.
왜 선언과 정의를 따로 작성할까? 컴파일 과정에서 헤더에 작성된 선언은 컴파일러에게 이 함수나 객체가 존재한다고 명시하는 기능을 한다. 그에 대한 정의는 기계어로 번역된 같은 이름의 객체 파일에 의해 자동으로 링킹되기 때문에 프로그램은 정상적으로 작동할 수 있다. 선언과 정의의 분류는 개발 단계에서의 기획, 협업, 구현 등을 용이하게 하고, 유지보수 단계에서의 수정이나 인터페이스 유지에 도움이 된다.
II. define/undef
매크로 전처리 명령은 개발자가 지정한 텍스트를 다른 텍스트로 대체하는 기능이다.
긴 수식을 대체할때도 사용하며, 어떤 소스 파일에 설정을 부여하는 작업을 반복할 때 유용하다.
undef는 어떠한 메크로를 무효화하는 명령이다.
III. ifdef/endif
조건부 전처리 명령은 특정 매크로의 정의 여부에 따라 일정 구간의 코드를 컴파일할지, 무시할지 선택할 수 있게 하는 기능이다.