Taille de l’opérateur

Définition - Que signifie Sizeof Operator?

L'opérateur Sizeof, en C #, est un opérateur utilisé pour déterminer la taille (en octets) d'un type non managé qui n'est pas un type référence.

Lors du développement d'applications impliquant une allocation de mémoire dynamique, il est très courant de trouver la mémoire allouée à un type. Il est très dangereux de prendre la taille d'un type et d'utiliser la valeur codée en dur dans l'application, car cela peut interrompre l'application lors du portage sur différents systèmes. L'opérateur sizeof est utilisé dans de tels cas pour trouver la taille d'un type de données composé comme une structure. Cependant, il ne peut être utilisé que pour calculer la taille en octets des types valeur et non pour les types référence en raison du système de disposition de type virtualisé du framework .NET.

L'opérateur sizeof aide à l'allocation de mémoire pour les structures de données qui sont passées hors de l'application gérée vers du code non géré comme Interop, la sérialisation personnalisée, etc. dans une variable de pointeur d'une valeur égale au nombre d'octets occupés par le type de pointeur. L'opérateur sizeof permet d'améliorer la lisibilité du code.

Definir Tech explique Sizeof Operator

L'opérateur sizeof est un opérateur unaire qui prend un seul paramètre et est utilisé avec le mot-clé "sizeof". Contrairement à C ++, l'opérateur sizeof est une construction au moment de la compilation, le paramètre doit donc être un type fermé connu lors de la compilation, et non des variables. Le paramètre peut également être une énumération, un pointeur ou une structure définie par l'utilisateur sans aucune propriété de champ ou de type de référence. Pour certains types prédéfinis, l'opérateur sizeof renvoie une valeur constante, tandis que son utilisation avec les types restants aboutit à des valeurs basées sur l'implémentation.

Par exemple, lorsque l'opérateur sizeof est exécuté avec integer (int) comme paramètre, il renvoie toujours le nombre quatre pour indiquer qu'une variable de type entier occupe quatre octets de mémoire.

Lorsque l'opérateur sizeof est appliqué à un opérande de type struct, il récupère le nombre total d'octets occupés par une structure, qui inclut les octets de remplissage utilisés pour son alignement en interne. Les instructions à suivre lors de l'utilisation de l'opérateur sizeof avec struct incluent:

  • Il doit être appelé dans un bloc non sécurisé
  • La variable struct ne doit pas contenir de membre de type référence
  • La structure ne doit pas être un type valeur générique

Cette définition a été écrite dans le contexte de C #