Maison > développement back-end > C++ > Est-ce que `sizeof(void)` nous indique la taille du type void en C ou C ?

Est-ce que `sizeof(void)` nous indique la taille du type void en C ou C ?

Mary-Kate Olsen
Libérer: 2024-12-03 20:05:27
original
1043 Les gens l'ont consulté

Does `sizeof(void)` tell us the size of the void type in C or C  ?

Taille du vide insaisissable

Question :

Peut-on déterminer la taille du vide de type C ou C ? Considérez le code suivant :

void *p = malloc(sizeof(void));
Copier après la connexion
Extension : Si sizeof(void) renvoie 1 dans GCC, le pointeur p s'incrémentera-t-il à 0x2346 après p si p détenait initialement 0x2345 ?

Réponse :

Le type vide manque fondamentalement de taille, ce qui rend l'expression sizeof(void) dénuée de sens et conduit à une erreur de compilation. En C , c'est strictement interdit.

Découverte inattendue :

Étonnamment, lors de la compilation en GNU C, sizeof(void) donne 1. Cependant, ce comportement est limité à GNU C et non observé en C ou autre implémentations.

Implications :

Malgré la valeur de retour inattendue dans GNU C, il est crucial de noter que void reste un type sans taille. Les pointeurs vers void, comme p dans l'exemple, sont de véritables pointeurs et peuvent être incrémentés comme n'importe quel autre pointeur. L'opération d'incrémentation dans la question d'extension se comportera comme prévu, p pointant vers la prochaine adresse mémoire disponible.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal