Maison >développement back-end >C++ >Pourquoi Printf() favorise-t-il les flotteurs en double ?
Plongée approfondie : Pourquoi Printf() favorise le doublement des nombres à virgule flottante en nombres à virgule flottante double précision
Pourquoi Printf() favorise le doublement des paramètres flottants , pas seulement parce que c'est une fonction variadique. Selon le standard C et le standard C, tous les arguments float des fonctions variadiques sont promus au double avant d'être transmis.
La section 6.5.2.2 de la norme C99 indique clairement : "[...] Les paramètres de type à virgule flottante sont promus au double. Ceux-ci sont appelés promotions de paramètres par défaut. [...]"
La section 5.2.2 du projet de norme C indique également : "[...] Si un paramètre de type à virgule flottante est affecté par la promotion à virgule flottante (4.6), la valeur du paramètre sera convertie en type promu avant le call. [.. .]"
De plus, la section 4.6 indique : "Une valeur pr de type float peut être convertie en une valeur pr de type double"
. Cppreference résume bien C. La conversion par défaut des fonctions de paramètre variable : "
En C, cette conversion est destinée à la compatibilité avec K&R C . La spécification de la norme internationale (Langage de programmation - C) indique clairement : "Pour des raisons de compatibilité avec les pratiques antérieures, en l'absence de déclarations de prototypes, toutes les promotions de paramètres sont effectuées comme décrit par K&R, y compris float pour doubler l'amélioration . "
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!