가변 함수에서 Float 인수를 Double로 승격
이전 토론에서 printf()가 float 인수를 Double로 승격한다는 점에 주목했습니다. 그것을 받아들이기 전에 두 배. 이것은 질문을 제기합니다: 모든 variadic 함수가 이 승격을 수행합니까?
Variadic Argument 승격
예, C99 및 C 표준 모두에 따르면 float 인수는 variadic에 전달됩니다. 기능이 더블로 승격되었습니다.
표준 사양
가변 함수 변환에 대한 cppreference
cppreference는 제공합니다. C의 가변 함수에 대한 기본 변환 요약:
프로모션의 유래
이 프로모션은 잠재적인 단점에도 불구하고 K&R C 표준과의 호환성을 위해 C로 도입되었습니다. C 근거에 따르면 다음과 같습니다.
"과거 관행과의 호환성을 위해 모든 인수 승격은 프로토타입 선언이 없는 경우 K&R에 설명된 대로 발생합니다. 여기에는 항상 바람직하지 않은 float 승격이 포함됩니다."
위 내용은 모든 Variadic 함수는 'float' 인수를 'double'로 승격합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!