跳至主要內容

空结构体

张威小于 1 分钟c/c++c++补充

对于c语言

Windows下VS是不允许定义空struct结构体的

Linux/Unix下gcc编译器,空结构体是0

对于c++

无论是vs还是gcc/g++下定义的空结构体大小为1,

为什么c++空类占用内存大小为1

c语言空结构定义变量里面什么都没有,所以为0

c++里不叫变量,而是对象,定义一个变量只需要内存就行,而对象需要内存还要构造函数构造才叫对象,构造函数会生成一个this指针存放对象的起始地址,即c++区别c的在于创建对象需要调用构造函数,生成对象必须要有内存传给this调用构造函数,构造函数才能知道在哪里初始化/构造,因为没有东西因此默认给1字节的内存用于构造对象