#include "stdafx.h"
#include <iostream>
using namespace std;
class A1
{
public:
int a;
static int b;
A1();
~A1();
};
class A2
{
public:
int a;
char c;
A2();
~A2();
};
class A3
{
public:
float a;
char c;
A3();
~A3();
};
class A4
{
public:
float a;
int b;
char c;
A4();
~A4();
};
class A5
{
public:
double d;
float a;
int b;
char c;
A5();
~A5();
};
int _tmain(int argc, _TCHAR* argv[])
{
int i;
cout<<sizeof(A1)<<endl;
cout<<sizeof(A2)<<endl;
cout<<sizeof(A3)<<endl;
cout<<sizeof(A4)<<endl;
cout<<sizeof(A5)<<endl;
cin>>i;
return 0;
}
输出为:4,8,8,12,24.原因:数据对齐。char要补齐。
short f();
cout<<sizeof(f());
输出为2。根据代码调试猜测:函数的大小与返回值类型有关(未查证)。