为什么一个struct数据类型的额外内存?

时间:2014-06-05 06:44:51

标签: c memory-management struct

我编写了一个简单的C代码,其中我定义了两个struct数据类型dT0和dT1。 dT0数据类型有一个int elemnt(a)和一个double元素(r),而数据类型dT1有两个int元素(a和b)和一个double元素(r)。当然我认为dT0的内存需求会小于dT1的内存需求,但令我惊讶的是,当我尝试使用sizeof()在main中打印它们的大小时,我得到两者的相同内存要求,即16。期望dT0为12个字节(4个为int,8个为double)和16个字节为dT1(8个为两个整数,8个为双精度)。我错过了什么?

#include<stdio.h>
#include<stdlib.h>

typedef struct dType0
{
  int a;
  double r;
}dT0;

typedef struct dYype1
{
  int a,b;
  double r;
}dT1;

int main()
{
  printf("%d %d\n",sizeof(dT0),sizeof(dT1));
  return(0);
}

0 个答案:

没有答案