Promotions de type par défaut dans les listes d'arguments variadiques
En C et C, lors du passage d'arguments à une fonction avec un nombre variable d'arguments (c'est-à-dire , une fonction variadique), certaines promotions de type par défaut se produisent.
Promotion d'entier
Les normes C et C garantissent que tout type entier avec un rang inférieur à int est promu soit en int, soit en int non signé. Cela signifie que si vous transmettez un entier de 8 bits (par exemple, uint8_t) à une fonction qui attend un int (dont la taille est généralement de 16 bits ou plus), l'entier de 8 bits sera automatiquement promu à 16 bits ou plus.
Par exemple, dans l'extrait de code fourni :
uint8_t a = 5; printf("%d", a);
Le spécificateur de format %d attend un int, mais comme a est un uint8_t, il sera promu en int avant d'être transmis à printf .
Promotion flottante
De même, les valeurs flottantes sont promues au double par défaut. Cela signifie que si vous passez un float à une fonction qui attend un double, le float sera automatiquement converti en double précision.
Exemple
En résumé, la valeur par défaut Les promotions de type dans les listes d'arguments variadiques sont :
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!