我编写了一个简单的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);
}