结构体的字节数是如何运算的?
#include <iostream> using namespace std;
//结构体A
struct A
{
short num;
int math_grade;
float Chinese_grade;
double sum_grade;
}student1;
//结构体B
struct B
{
short num;
short math_grade;
char Chinese_grade;
double sum_grade;
}student2;
//结构体C
struct C
{
short num;
double sum_grade;
short math_grade;
char Chinese_grade;
}student3;
//结构体D
struct D
{
int a;
double b;
char c[9];
};
void main()
{
cout<<"sizeof(A)="<<sizeof(A)<<endl;
cout<<"sizeof(B)="<<sizeof(B)<<endl;
cout<<"sizeof(C)="<<sizeof(C)<<endl;
cout<<"sizeof(C)="<<sizeof(D)<<endl;
}
/*输出结果:sizeof(A)=24
sizeof(B)=16
sizeof(C)=24
sizeof(D)=32
问题:结构体的字节数是怎么运算的?不难发现,结构体B和C只是成员顺序上的变化,输出结果却相差甚大。为什么会这样呢?恳请高手们指点迷津,帮忙分析一下以上四个结构体的运算结果,小弟感激不尽啊!(小弟用的是VC6.0。)
*/