我有一个包含许多变量的结构,我需要在结构中间动态对齐一些变量。例如,我有以下结构,我想使用posix_memalign或其他方法将x5对齐到缓存行。有可能吗?
struct many_vars {
uint32_t x1;
uint32_t x2;
uint64_t x3;
uint64_t x4;
// ...
uint64_t x5;
uint64_t x6;
// ...
uint64_t x7;
uint64_t x8;
}
答案 0 :(得分:0)
我是这样认为的。您应该能够做到这一点:
forEach
答案 1 :(得分:0)
编译器通常在结构字段之间插入填充,以实现最佳对齐。这包括高速缓存行对齐等。您在该字段中尝试失败的两个重要原因。