전처리어

스윗포테이토·2022년 10월 27일
0

오늘은 전처리어에 대해 간단히 정리해보려고 한다.

전처리어는 전처리 단계에서 시작되며 #<지시자> 형태이다.

  1. #include
    #include <iostream>
    지시한 헤더파일 혹은 라이브러리를 포험하도록 지시
  1. #define, #undef
    #define MAX 100000
    #define DEBUG 1
    #define add(a, b) (a+b)
    매크로를 정의한다. 이렇게 정의한 변수나 함수는 스택에 쌓이지 않고 전처리 단계에서 값으로 치환된다.
    #undef로 정의한 매크로를 삭제할 수 있다.
  1. #if

    #if DEBUG
        cout << "debug mode\n";
    #endif

    조건문이다. 괄호를 사용하지 않기 때문에 반드시 #endif로 닫아주어야 한다.
    환경에 따라 다른 실행을 할 때 사용된다.

  2. #ifdef, #ifndef

    #ifdef DEBUG
        ... // A
    #endif
    
    #ifndef DEBUG
        ... // B
    #endif

    조건문의 일부이지만, 뒤에 있는 값이 정의 되었는지 여부를 검사한다. 즉, DEBUG의 값이 false더라도 일단 정의가 되어 있으면 무조건 A 부분은 실행이 된다.
    이것을 통해 같은 소스코드를 중복으로 참조하는 일을 막을 수 있다.

    #ifndef CODE_A
    #define CODE_A
    
    // 소스코드
    
    #endif 
profile
나의 삽질이 미래의 누군가를 구할 수 있다면...

0개의 댓글