Может ли порядок объявления переменных в структуре влиять на ее размер? - C#
Формулировка задачи:
Здравствуйте.
Недавно обнаружил интересную вещь. Есть вот такой код:
И результат:
Обратите внимание, что структуры A и B отличаются только порядком расположения полей. Как объяснить эти цифры (которые не являются суммой размеров полей) и различие в двух структурах?
struct A
{
byte a;
// short b;
byte c;
short d;
int e;
}
struct B
{
byte a;
short b;
byte c;
// short d;
int e;
}
void Main()
{
unsafe {
Console.WriteLine("Size of A: {0}\nSize of B: {1}", sizeof(A), sizeof(B));
}
}Size of A: 8 Size of B: 12
Решение задачи: «Может ли порядок объявления переменных в структуре влиять на ее размер?»
textual
Листинг программы
|7 6 5 4||3 2||1||0| | e || b ||c||a| |11 10 9 8|7 6 5|4||3 2|1|0| | e | |c|| b | |a|