프로그래밍 언어/C언어

C언어 #define, #if , #ifdef , #ifndef란

원원 2017. 9. 11. 23:46


안녕하세요. 오늘은 전처리기 #define, #if, #ifdef, #ifndef에대해 알아보겠습니다.

먼저 전처리기란 컴파일 하기 전에  #가 붙은 코드를 지정해놓은 코드로 변경하는 일입니다. 사용자가 직접 할 필요 없고 자동으로 해줍니다



#define

#define란 값을 치환해 주는 것입니다. 예를 들어 절대 안 변하는 파이값 PI=3.14라고 하였을 코드내에서 int PI=3.14라고 해놨다면, 사용자가 실수로 PI=300 이런식으로 할 수 있는데, 이런것을 방지해줍니다. 또한 공통의 값이 들어갈때 #define을 사용할 수 있습니다.



#if

#if는 if문과 기능이 같습니다. 그러나 #define에 정의된 값이 integral type이여야만 합니다.

해당하지 않는 문장은 연해진 것을 볼 수 있습니다.


#ifdef

#ifdef는 일반적으로 잘 사용하지 않는데 헤더파일에보면 많이 나와있습니다. #ifdef는 어떤 변수가 #define되있는지 알아보는 기능입니다.

이 기능은 헤더파일에서 많이 볼 수 있는데 c++에서 c의 라이브러리를 사용할 때 사용합니다. 

1
2
3
4
5
6
7
8
9
10
#ifdef __cplusplus
extern "C" {
#endif
 
//C함수 선언
 
#ifdef __cplusplus
}
#endif
 
cs






#ifndef

#ifndef는 #ifdef와 반대로 정의되어있지 않으면 발생하는 전처리기입니다.