#define으로 매크로를 정의할 때 괄호를 사용해 함수형 매크로를 만들 수 있다.
#define SQUARE(x) ((x) * (x))
이 때 괄호 안에 설정한 매크로 인자 x 에는 문법적으로 유효한 모든 코드 조각(token) 이 들어갈 수 있다.
#define PRINT(x) printf(x)
#define SQUARE(x) ((x) * (x))
int main()
{
PRINT("asd"); // -> asd 출력됨
printf("%d\n", SQUARE(5)); // -> 25 출력됨
printf(SQUARE(5)); // -> 컴파일 에러
}
문법적으로 유효하지 않게 쓴다면 당연히 에러가 발생한다.
'공부 > C\C++' 카테고리의 다른 글
| c union (0) | 2025.07.05 |
|---|---|
| c++ placement new (0) | 2025.07.04 |
| c++ using typedef 차이 (0) | 2025.06.28 |
| c 매크로 - ## (토큰 결합 연산자) (0) | 2025.06.28 |
| typeid 키워드 (0) | 2025.06.28 |