一个小程序,谁能告诉我为什么呢??下面代码中的结构体的字节数好像怎么都不对,不知道怎么回事。#includeios
一个小程序,谁能告诉我为什么呢??
下面代码中的结构体的字节数好像怎么都不对,不知道怎么回事。
#include <iostream>
using namespace std;
struct ABC
{
int a;
short int b;
short int c;
char ch;
}ABC;
int main()
{
ABC.a=1;
ABC.b=2;
ABC.ch= 'a ';
ABC.c=3;
cout < <sizeof(ABC.a) < <endl;
cout < <sizeof(ABC.b) < <endl;
cout < <sizeof(ABC.c) < <endl;
cout < <sizeof(ABC.ch) < <endl;
cout < < "sizeof(ABC) is : " < <sizeof(ABC) < <endl;
return 0;
}
[解决办法]
编译器考虑了对齐,所以sizeof(ABC)不等于各个成员大小之和
