当前位置:编程学习 > C/C++ >>

空结构体(类对于C++)的大小

类似代码:
typedef struct sD
{

}S_D;

int size_d  = sizeof(S_D);

那么size_d=?

如果这是一段C++代码,那么这里结果是1;看上去编译器为这样没有成员的结构体隐形定义了一个一字节(char)的成员,目的是为了能用来标识类实例之间的不同。
这里可以这样理解,如果没有这一个字节,那么所有结构体的实例都是空,也就不占内存,那么他们的实例是没有区别的,因此C++的编译器不允许这么做,从而隐式增加了一个字节。

另外对于class也是同样的(因此C++中struct和class关键字基本没有区别)。


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,