我有一个包含许多变量的结构,我需要动态对齐结构中间的一些变量。例如,我有以下结构,我想通过使用 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;
}
最佳答案
我是这么认为的。你应该能够做到这一点:
typedef struct my_struct_optional_name {
uint32_t ui32_1;
uint32_t ui32_2;
char char_1;
// compiler inserts padding unless #pragma pack is in effect
uint64_t ui64_1;
} my_struct_t;
my_struct_t *my_struct = aligned_alloc(64, sizeof(my_struct_t));
关于c - 如何动态对齐结构的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943621/