int 72
C'est une question dans notre discussion dans une classe C#. J'ai dit 2 octets, d'autres ont dit qu'il utilise 32 bits ou 4 octets en raison du type entier. Qui est correct?Combien d'espace de stockage les éléments suivants prennent-ils?
int 72
C'est une question dans notre discussion dans une classe C#. J'ai dit 2 octets, d'autres ont dit qu'il utilise 32 bits ou 4 octets en raison du type entier. Qui est correct?Combien d'espace de stockage les éléments suivants prennent-ils?
Vous devez être beaucoup plus spécifique. Vous voulez de:
Il y a beaucoup de "coûts" différents associés à l'apparition d'un littéral entier tel que (int)72
apparaissant dans un programme. Si cela fait partie d'une expression plus grande, une simplification peut survenir au moment de la compilation, de sorte que le coût d'exécution marginal du littéral n'est rien du tout (à l'exception du débogueur qui affiche l'extrait le plus long du code source).
Quelle est la longueur d'un morceau de ficelle?
Cela dépend de l'architecture du processeur sur lequel vous travaillez (et éventuellement du compilateur que vous utilisez). This page explique - et vous donne votre réponse.
Heureusement, dans la spécification Common Type System, un 'int' est de 32 bits sur toutes les architectures et tous les compilateurs. –
Dans la plupart des cas, il consomme 4 octets sur la pile. C'est parce que int
est le mot clé C# qui correspond à Int32
dans le Common Type System (CTS).
Les choses deviennent un peu plus compliquées si elles doivent être encadrées. Voir article this pour une explication sur la boxe. La valeur encadrée consommerait réellement 12 octets (au moins sur un système 32 bits) sur le tas; 4 pour les données réelles, 4 pour le syncblock, et 4 le handle de type ou la table de méthodes.
Donc, la question n'est pas si simple.
Ah, bon point sur la syntaxe. Trop fatigué en ce moment, j'ai carrément négligé cela: | – Joey