次のWebページで構造へのパディングについて読みました。
http://software.intel.com/sites/default/files/m/2/c/d/3/9/25602-17689_w_spinlock.pdf
それが説明するように:それは同期構造にパディングを行うために次のステートメントを提案します:
struct syn_str { int s_variable; };
void *p = malloc ( sizeof (struct syn_str) + 127 );
syn_str * align_p = (syn_str *)( (((int) p) + 127) & -128 );
私の頭に浮かぶのは、次のようにはるかに簡単に実行できるということです。
struct syn_str { int s_variable; char padx[124] ; } in 32-bit OS
また
struct syn_str { int s_variable; char padx[120] ; } in 64-bit OS
128バイトでいっぱいの構造体を埋めるだけなので、これでうまくいかないことがありますか?
アップデート:
親切な情報ありがとうございます!! 質問を投稿した後、私は「align structure」をグーグルで検索しましたが、「posix_memalign」は使用するのに非常に適切な関数呼び出しのようです...