C++ 에서는 #define을 사용하여 매크로를 만들 수 있다.
매크로는 크게 함수와 유사한 매크로, 객체와 유사한 매크로로 구분 할 수 있는데
객체와 유사한 매크로를 다시 대체 텍스트가 있는 매크로, 대체 텍스트가 없는 매크로로 구분할 수 있다.
// 1. 함수와 유사한 매크로
#define add(x, y) x+y
// 2-1. 대체 텍스트가 있는 객체와 유사한 매크로
#define MAX 9999
// 2-2. 대체 텍스트가 없는 객체와 유사한 매크로
#define PRINT
대체 텍스트가 없는 매크로는 주로 조건부 컴파일을 하기 위해 사용된다.
조건부 컴파일 전처리 지시자를 사용하면 컴파일할 조건이나 컴파일 하지 않을 조건을 지정할 수 있다.
#define PRINT
#ifdef PRINT
std::out << "PRINT defined" << std::endl;
#endif
#ifdef INPUT
std::out << "INPUT defined" << std::endl;
#endif
PRINT만 정의되었기 때문에
std::out << "PRINT defined" << std::endl; 만 컴파일 된다.
이를 이용해 헤더파일을 선언할 때 헤더가드를 포함시켜 코드를 작성하면 된다.
현재 최신 컴파일러는 #pragma 지시자를 사용한 단순한 헤더가드를 지원한다. (공식 c++ 아님)
#pragma once
// your code
'C++' 카테고리의 다른 글
[C++] Type Casting (0) | 2024.01.16 |
---|---|
[C++] boolalpha 사용해서 true/false 출력하기 (0) | 2024.01.16 |
[C++] 부동 소수점 숫자의 정밀도(Precision) (0) | 2024.01.16 |
[C++] 고정 너비 변수 (Fixed Width Integers) (0) | 2024.01.16 |
[C++] 헤더파일 작성하기 (0) | 2024.01.15 |