@cVaArg

@cVaArg

C 언어에서 가변 인자를 순서대로 읽을 때 쓰는 va_arg 매크로, 그 동작을 Zig 안에서 바로 구현해 주는 내장 함수입니다. 가변 인자 목록에서 타입 T에 해당하는 다음 인자를 꺼내서 돌려줘요. C와 연동하는 코드를 짤 때 자연스럽게 만나게 되는 친구라, 쓰임새를 알아두면 좋습니다.

출처: Zig Documentation

본문

C의 va_arg 매크로를 그대로 구현한 내장 함수예요. 가변 인자 목록을 가리키는 포인터(operand)와, 그 자리에서 꺼내 올 값의 타입(comptime T)을 받아요. T는 컴파일 타임에 정해지는 타입이라서 comptime으로 표시되어 있죠.

@cVaArg(operand: *std.lang.VaList, comptime T: type) T

이렇게 인자를 하나씩 꺼내 오다 보면, C에서 va_listva_arg로 앞에서부터 읽어 내던 흐름을 Zig에서도 그대로 가져올 수 있어요.

더 알아보기