SYSV_ABI_CDecl — cdecl 호환 System V 호출 규약
SYSV_ABI_CDecl — cdecl 호환 System V 호출 규약
SYSV_ABI_Default를 쓰다 보면 C 함수처럼 가변 인자를 주고받아야 할 때가 있어요. 그럴 때 array of const를 C의 가변 인자처럼 취급해 주는 변형이 바로 SYSV_ABI_CDecl이에요.
본문
SYSV_ABI_CDecl 한정자는 컴파일러가 System V AMD64 ABI를 따르는 x86-64 전용 호출 규약을 쓰게 하되, 딱 한 가지 예외를 두는 방식이에요. 바로 array of const를 평범한 Pascal 배열로 보지 않고 cdecl 가변 인자(varargs) 파라미터로 해석한다는 점이죠.
다시 말해 C 라이브러리의 printf 같은 함수, 즉 인자 개수가 정해지지 않은 함수와 연동할 때 이 한정자가 유용해요. Pascal의 array of const가 C 쪽에서는 가변 인자로 전달되는 셈이에요.
더 알아보기
- SYSV_ABI_Default — 기본 System V AMD64 ABI 호출 규약
- varargs — C 프로시저의 가변 인자 선언을 간편하게 해 주는 한정자
- VectorCall — 벡터 레지스터를 쓰는 MS ABI 변형