Taille définie par l'implémentation de bool dans la norme C
Bien que la norme du langage C indique explicitement les tailles des types fondamentaux comme char, signé char , et unsigned char mesurant 1 octet chacun, la définition de sizeof(bool) est laissée aux implémenteurs discrétion.
La norme souligne cette ambiguïté au §5.3.3/1 :
sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; the result of sizeof applied to any other fundamental type is implementation-defined.
Cela signifie que la taille de bool n'est pas garantie d'être de 1 octet, et la norme inclut un note de bas de page (69) indiquant explicitement :
sizeof(bool) is not required to be 1.
Par conséquent, l'implémentation peut décider de la taille de bool en fonction de divers facteurs, tels que les contraintes d'architecture ou de plate-forme. Par conséquent, sizeof(bool) peut varier selon les différents compilateurs et systèmes.
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!