본문 바로가기

CERT C/전처리기

[CERT C] 전처리기

의미

전처리기란, 프로그램이 컴파일이 되기 이전에 프로그램의 조건에 맞추기 위해 수행하는 사전 처리 프로그램입니다.

 

문제 코드

다음 코드가 전처리기에 의해서 어떻게 바뀔지 생각해보시길 바랍니다. 

(문제가 있는 코드가 아닌 그냥 생각해보는 문제입니다

#include <stdio.h>

int main()
{
    printf("Hello World!");
    return 0;
}

위 문제의 정답은 stdio.h 헤더 파일에 있는 소스가 그대로 치환되어서 실행이 됩니다. 즉, 매크로 입니다.

 

#이 들어가는 지시어를 전처리기가 처리하는 것을 모르시는 분들도 많았을 겁니다.

전처리기가 처리하는 지시어들은 #define, #include, #undef, #if . . . 등이 있습니다.

 

전처리기에 의해서 처리되는 구문들이 어떠한 취약성을 가지고 있는지, 어떻게 사용되는지 알아보겠습니다 :)

 

참조


Rec. 01. Preprocessor (PRE)

wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87151965