Last Updated 2005/08/31 |
Programming Tips Visual C++ 他 | 索 引 |
アライメント
2005/08/31
上記の key2 では予想に反して構造体のサイズが大きくなる. これはアライメントが関係している. ビルドの設定の C++ でアライメントを1バイトにすると予想の大きさになる. 設定を変更しなくてもソースで
このように指定できる.または,pshpack1.h と poppack.h で囲う.
なぜデフォルトでアライメントが8バイトになっているかは,奇数バイトが途中に存在するとメモリアクセスの効率が落ちるからである. (効率だけまらまだしも,68000 などの CPU では奇数アドレスで WORD や DWORD をアクセスすると,システムにトラップされてエラーになってしまう) 参照 |
|