개발을 하다가, A모드와 B모드로 구분을 하고 싶을 때가 있습니다.
예를 들어, 웹 상에서만 개발 할 때, 디바이스에 올려서 테스트 할 때 라던지,
input을 5로 넣을때, 10으로 넣을때 뭐 이런식의 차이가 있을 때 있습니다.
물론 이때 기본적인 코드들은 전혀 건드리지 않고, 모드가 달라도 같은 구조를 띄고 있을때 사용하는 게 #ifdef 입니다.
#ifdef의 사용법은 일반적인 if문과 동일하다고 생각하시면 됩니다.
C에서의 if문의 경우 if ~else~형식으로 쓰는데 #ifdef도 마찬가지입니다.
#ifdef은
#ifdef identifier
~~
#else /* 필요할 경우 */
~~
#endif
형식으로 됩니다.
identifier는 #define으로 정의된것을 사용하고, 정의 되지 않았으면 당연히 #else문뒤의 것이 실행됩니다.
identifier는 코드 맨위에서 정의해도 되고 중간에 정의해도 되지만, 가독성을 위해 맨위에 정의를 합시다 !!
예를 들면
#define IQIsZero
....
#ifdef IQIsZero
#define MyMessage printf("바보")
#else
#define MyMessage printf("멍충이")
#endif
void main()
{
MyMessage;
}
위 문장에서 #define IQIsZero가 있으면 출력으로 "바보"이 #define IQIsZero문장을 없애면 "멍충이"가 출력됩니다.
어렵지 않은 구조 이지만, 잘만 사용하면 엄청 편리해 질 수 있다.
'Stupid Computer > 2. C 언어' 카테고리의 다른 글
[C/C++] TimeStamp to DateTime 시간을 초단위로 변환하여 출력 (convert timeStamp to DateTime String ) (0) | 2014.06.23 |
---|---|
[C/C++] 현재 시간을 가져와서 timeStamp(초 단위) 출력, 우리가 쓰는 시간으로 출력 (0) | 2014.06.02 |
[C/C++] 난수 생성하기 rand(), srand()함수 사용! 랜덤 숫자 생성하기 ! (0) | 2014.05.29 |
[C/C++] Class 사용, 은행 계좌 개설 및 입금, 출금 예제 ! (코드 첨부 ) (0) | 2014.05.28 |
[C/C++] Enum 사용법 , C언어 열거형 사용법 열거형(Enum) (0) | 2014.05.19 |
[C/C++] Menu 화면 구성 ! if else if ~ ( 메뉴 10개 이상 넘어갈때 ) (0) | 2014.04.24 |
[C/C++] switch case문 10개 이상 만들기 ! (0) | 2014.03.24 |
[json/cjson] json_object_is_type 사용법 (0) | 2014.03.06 |
[C/C++/리눅스/자바] Json 사용법 및 사용예제 (0) | 2014.02.28 |
[C/C++] 기본! 컴파일과 빌드~ 차이점 (0) | 2014.02.28 |