//============================================================================
// Name : Sizeof.cpp
// Author : gwwu
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
/* 一个struct的大小是它的所有成员大小的和,
* 一般会为了提高执行效率,增加额外的字节对齐*/
struct A {
int i[100];
};
/* 对象的基本规则之一是每个对象必须有一个唯一的地址,
* 因此,无数据成员的结构总应当有最小的非零长度*/
struct B {
void f();
};
void B::f() {}
struct C {
//int a;
short b;
void c();
};
void C::c()
{
cout << "I am c in C" << endl;
}
class D {
void d();
};
class E {
int e;
void efunc();
};
int main() {
cout << "sizeof struct A = " << sizeof(A) << " bytes" << endl; // prints !!!Hello World!!!
cout << "sizeof struct B = " << sizeof(B) << " bytes" << endl;
cout << "sizeof struct C = " << sizeof(struct C) << " bytes" << endl;
cout << "sizeof class D = " << sizeof(D) << " bytes" << endl;
cout << "sizeof class E = " << sizeof(E) << " bytes" << endl;
return 0;
}
编译运行:
sizeof struct A = 400 bytes
sizeof struct B = 1 bytes
sizeof struct C = 2 bytes
sizeof class D = 1 bytes
sizeof class E = 4 bytes