Maison >développement back-end >C++ >Pourquoi une classe vide en C a-t-elle une taille de 1 ?
Comprendre la taille des classes vides en C
En C, la taille d'une classe vide n'est pas nulle. Cela peut sembler contre-intuitif au début, mais il y a une raison cruciale derrière cela.
Pourquoi la taille n'est pas nulle
La norme C interdit aux objets et à leurs classes d'avoir une taille de 0. Cette restriction empêche deux objets distincts de partager la même adresse mémoire. Même une classe vide doit avoir une taille d'au moins 1 pour garantir des adresses d'objet uniques.
Dans l'exemple fourni :
<code class="cpp">#include <iostream> class Test { }; int main() { std::cout << sizeof(Test); return 0; }</code>
La sortie est 1 car la classe Test, bien qu'elle soit vide , a une taille de 1 pour être conforme à la norme. Chaque classe en C , quel que soit son contenu, doit avoir une taille non nulle pour éviter d'éventuels conflits d'adresses mémoire.
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!