g ++内存在数组中间对齐

时间:2016-04-12 12:54:48

标签: c++ g++ memory-alignment

任何人都有建议有效地(内存使用方式)在数组元素上执行内存对齐,而不是第一个。例如,假设我有以下

unsigned char[516] a;

我想将[4]内存对齐到64字节边界?例如,如果大部分操作发生在最后512个,我想要SIMD矢量化,但偶尔会在前6个头字节上发生。

我知道我可以这样做:

   unsigned char _a[576]  __attribute__ ((aligned (64)));
   unsigned char *a = _a+60;

但这浪费了60 + 8个字节(让我们假设我关心它)。

有更优雅的解决方案吗?

0 个答案:

没有答案