【发布时间】:2020-10-27 03:08:50
【问题描述】:
给定以下c语言结构定义:
typedef struct PackTest {
long long a;
int b;
int c;
} PackTest;
Clang-Tidy 给出以下信息:
由于对齐不佳,访问 struct 'PackTest' 中的字段效率低下;当前对齐为 8 个字节,但建议对齐为 16 个字节
我知道为什么 struct 对齐到 8 个字节,但我不知道这个建议是否有效以及为什么。
【问题讨论】:
-
你能发布一个完整的程序来提供信息吗?
-
这是一个真的,真的不负责任的警告。没有可笑地过度对齐的标准结构并没有什么“不整洁”。出于非常特殊的目的,您可能需要一个过度对齐的对象,但如果它标记了这个,那么它标记的大多数东西都是错误的,并鼓励您编写效率低下且无缘无故不标准的代码。