在Windows和Linux下,定义的相同结构体,但为什么显示的结构体大小不一样啊?如何让他们一样?在做Windows和Linux下的通信程序,但同样的结构体从Linux下传到Windows下就不能正确获取结构体的内容了,我该怎么做啊?请高手指教,谢谢!
------解决方案--------------------
编译器优化对齐的方式不同,使用__attribute__ ((packed))取消优化对齐即可
------解决方案--------------------
和操作系统、编译器有关吧。没做过这种事情,不过觉得楼上的说的有理。
------解决方案--------------------
对其方式,和编译器有关,编译器应该有相应的编译开关,可以按照Byte对其
如:#pargma pack(1)
------解决方案--------------------
估计是内存对齐方式不同,可取消其内存对齐,:#pargma pack(1)
------解决方案--------------------
楼上有理,取消编译器对结构体的对齐优化处理
在结构体定义时,使用 packed 类似的关键字