C语言问题,菜鸟请教

来源:百度知道 编辑:UC知道 时间:2024/05/17 16:08:50
有一个题目
在16位的IBM-PC机上使用C语言,若有以下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量b占用的内存的字节数是
A 1 B2 C7 D11
为什么答案是11
我在一本书上看到与答案想矛盾

char,int,double,float这些数据类型虽然说基本上是1,4,8,4
但是它们在不同的编译器上是可以不同的,所以当你想知道一个数据类型到底占多少字节时,就用sizeof(int)sizeof(int,sizeof(float),

sizeof(data);等。

不要认为结构体的长度等于内部各类型长度和
在不同的机器上会使用不同的内存对齐方式来加快编译速度

16位机 int站2字节 char站1字节 float 站4字节 double站8字节
是不是答案错了呢 应该是2*8=16吧

2+1+8=11