Maison >développement back-end >C++ >Pourquoi une classe vide en C a-t-elle une taille de 1 ?

Pourquoi une classe vide en C a-t-elle une taille de 1 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 21:25:29890parcourir

Why Does an Empty Class in C   Have a Size of 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn