Letaille de
L'opérateur donne la quantité de stockage, en octets, requis pour stocker un objet du type d'opérande.Cet opérateur vous permet d'éviter de spécifier les tailles de données dépendantes de la machine dans vos programmes.
Syntaxe
Sizeof unary-expressionsizeof (Type-Name)
Remarques
L'opérande est soit un identifiant qui est unexpression unaire, ou une expression de type moulé (c'est-à-dire un spécificateur de type enfermé entre parenthèses).Leexpression unaireImpossible de représenter un objet de champ Bit, un type incomplet ou un concepteur de fonction.Le résultat est une constante intégrale non signée.L'en-tête standard stddef.h définit ce type commesize_t.
Lorsque vous appliquez letaille de
Opérateur à un identifiant de tableau, le résultat est la taille de l'ensemble du tableau plutôt que de la taille du pointeur représenté par l'identifiant du tableau.
Lorsque vous appliquez letaille de
Opérateur à un nom de structure ou de type d'union, ou à un identifiant de structure ou de type d'union, le résultat est le nombre d'octets dans la structure ou l'union, y compris le rembourrage interne et de fin.Cette taille peut inclure le rembourrage interne et de fuite utilisé pour aligner les membres de la structure ou de l'union sur les limites de la mémoire.Ainsi, le résultat peut ne pas correspondre à la taille calculée en additionnant les exigences de stockage des membres individuels.
Si un tableau non signé est le dernier élément d'une structure, letaille de
L'opérateur renvoie la taille de la structure sans le tableau.
tampon = calloc (100, sizeof (int));
Cet exemple utilise letaille de
opérateur pour passer la taille d'unint
, qui varie selon les machines, comme argument d'une fonction d'exécution nomméecalloc
.La valeur renvoyée par la fonction est stockée danstampon
.
Statique Char * Strings [] = {"Ceci est String One", "Ceci est String Two", "Ceci est String Three",}; const int string_no = (sizeof Strings) / (sizeof Strings [0]);
Dans cet exemple,cordes
est un éventail de pointeurs verscarboniser
.Le nombre de pointeurs est le nombre d'éléments dans le tableau, mais n'est pas spécifié.Il est facile de déterminer le nombre de pointeurs en utilisant letaille de
Opérateur pour calculer le nombre d'éléments dans le tableau.Leconst
valeur entièrestring_no
est initialisé à ce numéro.Parce que c'est unconst
valeur,string_no
ne peut pas être modifié.
Voir également
C opérateurs
Opérateurs intégrés C ++, priorité et association