Tamaño del operador

Definición - ¿Qué significa Sizeof Operator?

El operador Sizeof, en C #, es un operador que se usa para determinar el tamaño (en bytes) de un tipo no administrado que no es un tipo de referencia.

Al desarrollar aplicaciones que involucran la asignación de memoria dinámica, es muy común encontrar la memoria asignada a un tipo. No es seguro asumir el tamaño de un tipo y usar el valor codificado en la aplicación, ya que esto puede romper la aplicación cuando se transfiera a diferentes sistemas. El operador sizeof se usa en tales casos para encontrar el tamaño de un tipo de datos compuesto como una estructura. Sin embargo, solo se puede utilizar para calcular el tamaño de bytes de los tipos de valor y no para los tipos de referencia debido al sistema de diseño de tipo virtualizado del marco .NET.

El operador sizeof ayuda en la asignación de memoria para estructuras de datos que se pasan de la aplicación administrada a código no administrado como Interop, serialización personalizada, etc. Los operadores de incremento y decremento, que operan en punteros, usan el operador sizeof internamente para incrementar o disminuir la dirección contenida en una variable de puntero por un valor igual al número de bytes ocupados por el tipo de puntero. El operador sizeof ayuda a mejorar la legibilidad del código.

Techinfo explica Sizeof Operator

El operador sizeof es un operador unario que toma un único parámetro y se usa con la palabra clave "sizeof". A diferencia de C ++, el operador sizeof es una construcción en tiempo de compilación, por lo que el parámetro debe ser de un tipo cerrado conocido durante la compilación, no variables. El parámetro también puede ser una enumeración, un puntero o una estructura definida por el usuario sin ningún campo o propiedades de tipo de referencia. Para ciertos tipos predefinidos, el operador sizeof devuelve un valor constante, mientras que su uso con los tipos restantes da como resultado valores basados ​​en la implementación.

Por ejemplo, cuando el operador sizeof se ejecuta con integer (int) como parámetro, siempre devuelve el número cuatro para indicar que una variable de tipo integer ocupa cuatro bytes de memoria.

Cuando el operador sizeof se aplica a un operando de tipo de estructura, obtiene el número total de bytes ocupados por una estructura, que incluye los bytes de relleno utilizados para su alineación internamente. Las pautas a seguir al usar el operador sizeof con struct incluyen:

  • Debería llamarse dentro de un bloque inseguro
  • La variable de estructura no debe contener un miembro de tipo de referencia
  • La estructura no debe ser un tipo de valor genérico

Esta definición se escribió en el contexto de C #