揮発性のメモ2

http://d.hatena.ne.jp/iww/

charのアライメントを揃える

__attribute__((aligned(16))) とかを使う

 1: main()
 2: {
 3:     int a;
 4:     char b;
 5:     char c[13]  __attribute__((aligned(16)));
 6:     char d[13];
 7:     char e[13];
 8:
 9:     printf("&a = %08X\n",&a);
10:     printf("&b = %08X\n",&b);
11:     printf("&c = %08X\n",&c);
12:     printf("&d = %08X\n",&d);
13:     printf("&e = %08X\n",&e);
14: }
$ ./a.out
&a = FFA095DC  ←intとかはもともとその境界に沿う様になってる
&b = FFA095DB  ←奇数
&c = FFA095C0  ←指定したので16バイト境界に沿ってる
&d = FFA095B3  ←奇数
&e = FFA095A6

スタック内で変数が確保される順番は、割りと適当