C언어. 가변 인자 매크로 알아보기
🌟 가변 인자란?
말 그대로 고정되어 있지 않은 매개 변수를 말한다. 보통 함수를 사용하면 매개 변수가 정해져 있어서 값을 넣을 때 그 개수만큼 맞춰서 넣어야 하는데, 가변 인자는 몇 개든 상관없이 자료형만 맞추면 얼마든지 넣을 수 있다.
가변 인자 함수
자료형 함수 이름(고정 매개 변수, ...) { }
가변 인자를 사용할 때는 이런 식으로 말줄임이 필요하다.
가변 인자 매크로
#define 매크로명(고정 매개 변수, ...) 내용
가변 인자 매크로도 마찬가지! 가변 인자 함수와 같이 매크로에도 가변 인자를 사용할 수 있다.
🌟 사용법
#include <stdio.h>
#define PRINT(...) printf(__VA_ARGS__)
int main()
{
PRINT("hi");
PRINT("%d", 5);
return 0;
}
...
은 가변 인자를 뜻하며 __VA_ARGS__
는 가변 인자를 입력받는 곳이다.
위 코드는 가변 인자만 사용했을 때다. 고정 인자와 함께 사용할 수도 있다.
#include <stdio.h>
#define PRINT(X, ...) printf(X, ##__VA_ARGS__)
int main()
{
PRINT("hi");
PRINT("%d", 5);
return 0;
}
대신 __VA_ARGS__
앞에 ##을 붙여줘야 한다.
댓글남기기