(toppers-users 2531) Re: コンフィギュレータのアライメント

Masaki Muranaka monamour @ monaka.org
2006年 9月 13日 (水) 16:41:48 JST


こんにちは.

On 2006/09/13, at 13:37, takaya_kakizaki @ gmx.yamaha.com wrote:
> 4バイトアライメントを保証したいなら
>
> static VP __attribute__((aligned(4)))

GCCにおけるaligned属性は,
「少なくとも(at least) nバイトで」アラインメントする
という指定です.4を指定したとして,きっちり4バイトで
整列してくれる保証はどこにもありません.
(6でアラインしたとしても処理系のバグとはいえない)

実際に,型Tの配列t[]をaligned(n)で整列したとき,
特定条件で, t[i]のアドレスが c + n * i (ここで,c <  
n)に
なる実装が存在します.例えばMIPS64系など.

上手に使えば使えなくもないと思いますが,
「保証したいなら」という主張の文脈では,
怖くて使えないと思いますよ.

--
from もなか