Mips 32bit и Struct (C) с вопросами о размере

У меня есть следующий код C

struct foo {
   char a;
   struct innerStruct table[2];
   int c;
   bool b;
   double d;
   short e;
   float f;
   double g;
   char *cptr;
   void *vptr;
   int x;
}

typedef struct {
   char c1;
   double *dptr;
   char c2;
} innerStruct;

сколько байт этот код struct foo собираешься взять в мою память? Я имею в виду, что если int занимает 4 байта, а char - 1, я должен просто увеличить его на основе (4+1). Кроме того, какой наименьший размер может иметь struct foo, если, скажем, мы можем изменить порядок этих элементов внутри нашей структуры? Что произойдет, если мы изменим ее на 64-битную вместо обычной 32? Влияет ли это на общий размер сохранения в памяти? Должна ли структура быть выровнена и если да, то почему?

0 ответов

Другие вопросы по тегам