#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

+ Recent posts