草庐IT

troubleMaker

全部标签

C++结构对齐问题

我有一个预定义的结构(实际上是几个),其中变量跨越32位字边界。在Linux(和使用GCC的Windows)中,我可以使用“属性((打包))”将我的结构打包到正确的大小。但是,我无法使用VC++和#pragmapack使其以相同的方式工作。使用GCC会返回正确的6字节大小:struct{unsignedinta:3;unsignedintb:1;unsignedintc:15;unsignedinttroubleMaker:16;unsignedshortpadding:13;}__attribute__((packed))s;使用VC++会返回错误的8字节大小#pragmapack(

C++结构对齐问题

我有一个预定义的结构(实际上是几个),其中变量跨越32位字边界。在Linux(和使用GCC的Windows)中,我可以使用“属性((打包))”将我的结构打包到正确的大小。但是,我无法使用VC++和#pragmapack使其以相同的方式工作。使用GCC会返回正确的6字节大小:struct{unsignedinta:3;unsignedintb:1;unsignedintc:15;unsignedinttroubleMaker:16;unsignedshortpadding:13;}__attribute__((packed))s;使用VC++会返回错误的8字节大小#pragmapack(