C언어. 가변 인자 매크로 알아보기

최대 1 분 소요

🌟 가변 인자란?

말 그대로 고정되어 있지 않은 매개 변수를 말한다. 보통 함수를 사용하면 매개 변수가 정해져 있어서 값을 넣을 때 그 개수만큼 맞춰서 넣어야 하는데, 가변 인자는 몇 개든 상관없이 자료형만 맞추면 얼마든지 넣을 수 있다.

가변 인자 함수

자료형 함수 이름(고정 매개 변수, ...) { }

가변 인자를 사용할 때는 이런 식으로 말줄임이 필요하다.

가변 인자 매크로

#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__앞에 ##을 붙여줘야 한다.

댓글남기기