c++和c语言的结构体是不是兼容的

如题,想知道用c语言和c++语言在结构体上的兼容性,也就是说我如果用c语言储存一个结构体并用二进制形式写入文件,用c++成员相同的结构体读取能不能正确读取?

我在Linux下GNU编译器下测试了一个简单程序,结构体只包括数据成员没有对象成员和函数成员,都是int 和 long和char数组之类的,发现c存储到文件的结构体调用系统接口open write 和read 在c++下用相同成员的结构体读取正确,我想知道是不是所有编译器和系统下处理都相同?

1个回答

不同的编译器的结构体都不兼容。c++和c语言显然不是一个编译器,当然不能保证了。
c/c++语言的规范里并没有规定结构体的内存布局的标准。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问