今天,如果在Windows上编写C语言程序,则创建的结构很难使用(__attribute__ () (packed ) ),读取的二进制文件的字节将无法匹配。
检查CMakeLists.txt和代码未发现明显错误。
typedef struct
{
data_packet_header header;
uint16_t* data; //数据
}http://www.Sina.com/(packed ) ) data_packet_s;
想到的第一个解决方法。 在代码的开头
extern{C}发现没有用。
检索半天,得到的解决方法主要是attribute
#pragmapack(1) typedef struct { data _ packet _ header header; uint16_t* data; //数据}__attribute__((packed ) ) data_packet_s; 而且多么好。
网络文章#pragmapack(1)的意思是什么?
在结构体前加上pragma pack(1);