66.2에서 질문이 있습니다.
, 민 현님이 작성https://dojang.io/mod/page/view.php?id=578
글 하단의 <참고>부분에 GCC가 표준이라고 하셨습니다.
가변인자로 받은 변수의 크기가 int보다 작으면 int형으로, 그보다 크면 double로 받아야 한다고 하셨는데, 그럼 포인터의 경우에는 무엇으로 받아야 하나요?
회신: 66.2에서 질문이 있습니다.
, 도장_ 관리자님이 작성예제에 쓰인 것처럼 va_arg(ap, char *)라고 쓰면 됩니다.
기본 타입에 대해 허용하는 타입이 있고, 아닌 게 있습니다. 컴파일러 구현체에 따라 다르고, 표준을 따르는 방식은 GCC입니다.
char가 허용되는 게 표준은 아니라는 얘기입니다.
포인터를 사용한 파생타입은 상관없습니다. 포인터는 포인터 타입이고, 주솟값이므로 같은 데이터 크기를 갖습니다.(포인터가 가리키는 대상의 크기가 아니라 포인터 자체의 크기를 말하는 것입니다. char는 1바이트이나 char *은 32비트 바이너리에선 4바이트, 64비트 바이너리에선 8바이트일 것입니다).