Mips 32bit和Struct(C)有关于大小的问题

时间:2015-10-15 11:31:54

标签: struct mips cpu-architecture mips32

我有以下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)。另外,如果我们可以改变结构中那些元素的顺序,结构foo可以拥有的最小尺寸是什么?如果我们将其更改为64位而不是正常的32,会发生什么?是否会影响保存在内存中的整体大小?结构是否必须对齐,如果是,为什么?

0 个答案:

没有答案