가변 인수 목록의 기본 유형 승격
C 및 C에서 가변 개수의 인수가 있는 함수에 인수를 전달할 때(예: , 가변 함수), 특정 기본 유형 승격이 발생합니다.
정수 승격
C 및 C 표준은 int보다 순위가 낮은 모든 정수 유형이 승격되도록 보장합니다. int 또는 unsigned int로 변환합니다. 즉, int(일반적으로 크기가 16비트 이상)를 기대하는 함수에 8비트 정수(예: uint8_t)를 전달하면 8비트 정수가 자동으로 16비트 이상으로 승격됩니다.
예를 들어 제공된 코드 조각에서:
uint8_t a = 5; printf("%d", a);
형식 지정자 %d는 int를 기대하지만 a는 uint8_t이므로 printf로 전달되기 전에 int로 승격됩니다. .
Float 승격
마찬가지로 float 값은 기본적으로 double로 승격됩니다. 즉, double을 기대하는 함수에 float를 전달하면 float가 자동으로 double 정밀도로 변환됩니다.
예
요약하면 기본값은 가변 인수 목록의 유형 승격은 다음과 같습니다.
위 내용은 다음은 귀하가 요청한 질문 측면에 초점을 맞춘 몇 가지 제목 옵션입니다. 직접적이고 명확함: * C/C Variadic 함수에서는 어떤 유형의 승격이 발생합니까? * Variadic Func에서 인수는 어떻게 승격됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!