FSM*_*axB 5 c c99 memory-alignment
是否有一种可移植的方式只依赖于C99标准提供的方法来找出任何数据类型所需的最大所需对齐.
就像maxalign_t在C++ 11中一样.
什么我目前做的是计算最小公倍数(lcm的比对)int,long int,long long int,double,void *并size_t作为确定排列的尽力而为的方式.
更新:
我目前需要这个来实现一个包装器,malloc它在内存块的开头存储元数据,并返回一个地址高于malloc返回地址的指针.
确实没有一个好的方法可以做到这一点,这就是maxalign_tC11 引入的原因。不过,我无法想象一个普通系统中存在比存在更高对齐要求的类型intmax_t,因此您不妨使用它,并在maxalign_t不可用时为 99% 的系统获得正确的答案。