请问编译器对 C 结构体成员自然对齐是一个惯例,还是说有相关标准规定呢?
資深大佬 : wheeler 6
今天代码 review 的时候一位同事说“你的结构体代码没有 4 字节补齐”。
我以为编译器都会进行补齐,在对结构体成员布局不敏感的情况下,不需要手动补齐。如果真的内存布局敏感的场景,比如网络,进程间消息,应该用#pragma pack 之内的吧。
V 友怎么看呢?
大佬有話說 (10)
今天代码 review 的时候一位同事说“你的结构体代码没有 4 字节补齐”。
我以为编译器都会进行补齐,在对结构体成员布局不敏感的情况下,不需要手动补齐。如果真的内存布局敏感的场景,比如网络,进程间消息,应该用#pragma pack 之内的吧。
V 友怎么看呢?
平时不需要字节序列化的顶多是根据目标编译器和平台的规则,可以自己调整调整字段顺序来减少补的大小