结构体的大小是其成员大小之和吗,类呢

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:39:45
c++大学教程上说:认为结构的大小就是其成员大小之和,是一种编程错误。能解释一下吗

//给你举个例子,如下结构体成员的大小是a+b=1+4=5个字节,但是事实上结构体的大小是8,因为要字节对齐,就是说32位的机器
//它的每个地址是4个字节,那如果有零头也会按4个字节算,这样方便取地址,程序如下:
#include <stdio.h>
struct A{
char a;
int b;
};

int main (){
A ab;
printf("sizeof(A)=%d,sizoeof(a)=%d,sizoe(b)=%d\n",sizeof(ab),sizeof(ab.a),sizeof(ab.b));
}