全部博文(95)
分类: C/C++
2008-09-03 19:34:18
1. C000为一个空类。
1)定义和实验如下:
struct C000
{
};
运行如下代码打印它的大小及对象中的内容。
PRINT_SIZE_DETAIL(C000)
结果为:
The size of C000 is 1
The detail of C000 is cc
1)定义和实验:
struct C010
{
C010() : c_(0x01) {}
void foo() { c_ = 0x02; }
char c_;
};
struct C011
{
C011() : c1_(0x02), c2_(0x03) {}
char c1_;
char c2_;
};
运行如下代码打印它们的大小及对象中的内容。
PRINT_SIZE_DETAIL(C010)
PRINT_SIZE_DETAIL(C012)
结果为:
The size of C010 is 1
The detail of C010 is 01
The size of C011 is 2
The detail of C011 is 02 03
C011:
3)相关说明
我们从对象的内存输出中可以看到,它们的值就是我们在构造函数中赋的值,C010为0x01,C011为0x0203。大小分别为1、2。普通成员函数在对象布局中不占空间。
1)定义和实验:
struct C012
{
static int sfoo() { return 1; }
int foo() { return 1; }
char c_;
static int i_;
};
int C012::i_ = 1;
在这个类中我们加入了一个静态数据成员,一个普通成员函数和一个静态成员函数。
运行如下代码打印它的大小及对象中的内容。
PRINT_SIZE_DETAIL(C012)
结果为:
The size of C012 is 1
The detail of C012 is cc
4)相关说明:
可以看到它的大小还是1字节,值为0xcc是因为我们没有初始化它,原因前面说过了。在图示中,省写了。