Macros

규규·2024년 3월 26일
0

C++

목록 보기
16/21

사전정의 매크로

  • 매크로에는 컴파일러, OS 에 의해 predefined macro 가 존재함
  • 컴파일러의 predefined macro 는 ISO C99, C11, C17, C++17 standards 에 포함되어 있음.
    • __LINE__ : 컴파일 파일 줄 번호
    • __FILE__ : 컴파일 파일 이름
    • __DATE__ : 컴파일 날짜
    • __TIME__ : 컴파일 시간
    • __STDC__ : 컴파일러가 C 표준 일 시 1 return
    • 더 있으므로 더 궁금하면 검색

조건부 컴파일 (Conditional compile)

  • 디버깅 시 진행했던 Logging 에 대해서 #if DEBUG, #ifdef,#ifndef, #elif, #else, #endif Macro 를 활용
  • 여러 OS 와 호환되는 프로그램 작성을 위해 WIND32,MAC_OS,LINUX 등 predefined macro 를 활용.

CMAKE 에서 macro 지정

  • add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)
  • ex:
## CMakeLists.txt
if (CMAKE_BUILD_TYPE MATCHES Debug)
    add_definitions(-DDEBUG=1)
endif()
// Conditional statements in code

int main(int argc, const char* argv[]) {
#if DEBUG
...
#else
...
#endif

출처:

profile
복습용 저장소

0개의 댓글