Как рассчитать отступ в C struct - PullRequest
0 голосов
/ 23 января 2020

Хотя я понимаю, как padding обычно работает в структуре C, я изо всех сил пытаюсь понять, как внутренняя структура дополняется. Пример:

struct inner
{
    int a;
}

struct outer
{
   char a;
   struct inner b;
}

Как вычисляется заполнение между элементом outer.a и элементом outer.b?

Как вычисляется заполнение конца структуры outer, когда тип данных члена inner.a изменяется с int на short или double?

Каковы последствия вычисления этих дополнений в 32-битной архитектуре по сравнению с 64-битной?

1 Ответ

0 голосов
/ 24 января 2020

Я всегда нахожу, что лучше гадать на такие вещи и поиграться, чтобы лучше понять. Вот пример для вашего случая:

пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...