반응형
#define _WINDOW_SYSTEM
#ifdef _WINDOW_SYSTEM
(코드)
#endif
이런식으로 #ifdef 와 #endif 사이의 코드가
특정 #define 이 되어있는 경우에만 코드가 컴파일 되도록 설정 할 수 있다.
#ifdef _WIN64
(코드)
#elif _WIN32
(코드)
#elif __APPLE__
#if TARGET_IPHONE_SIMULATOR
// iOS Simulator
#elif TARGET_OS_IPHONE
// iOS device
#elif TARGET_OS_MAC
// Other kinds of Mac OS
#else
# error "Unknow Apple platform"
#endif
#elif __linux__
(코드)
#elif __unix__
(코드)
#elif defined(_POSIX_VERSION)
(코드)
#else
# error "Unknow compiler"
#endif
위의 예제와 같이
#ifdef 와 #endif 사이에 #elif 를 넣어서 (else if와 같이 사용) 사용 할 수 있다.
또한 #error 을 사용하여 컴파일 시 에러를 출력하도록 할 수도 있다.
또한 _POSIX_VERSION 대신에 defined(_POSIX_VERSION) 을 사용 할 수도 있다.
#ifdef _DEBUG
(코드)
#else
(코드)
#endif
이렇게 코드하면, 디버그모드일때에만 실행되거나, 릴리즈모드일때에만 실행되도록 할 수 있다.
visual studio 상단에 Debug 모드와 Release 모드를 변경할 수 있는데,
Debug 모드란 : 개발할 때 필요한 정보를(디버그정보) 담아서 실행화일을 만드는 것을 의미하고,
Release 모드란 : 개발이 끝나고 출시(배포) 하기 위해 만드는 실행화일을 의미한다.
_DEBUG 를 #define 한적이 없는데 어떻게 되느냐고 궁금할수도 있는데
프로젝트 속성에서 C/C++ 의 전처리기를 선택하면
전처리기 정의 에 _DEBUG 가 정의 되어 있음을 확인 할 수 있다.
#ifdef _DEBUG
#endif
한국말로 한다면
만약 _DEBUG 가 정의 되어 있다면
이라고 해석 할 수 있겠는데,
#ifndef _DEBUG
#endif
와 같이 만약 _DEBUG 가 정의 되어 있지 않다면(# if n def)
와 같이 #ifndef 도 있다.
반응형
'C언어(2020년)' 카테고리의 다른 글
29. typedef (0) | 2020.11.04 |
---|---|
28. union (0) | 2020.11.04 |
26. 가변인자 함수 만들기 (0) | 2020.11.04 |
25. Call by Value, Call by reference, Call by Address (0) | 2020.11.04 |
24. 함수 (0) | 2020.11.04 |