auの日記

プログラミング初心者の日記。(auはハンドルネームです)

アラインメントとは

auです。
今回はアラインメントについて調べてみました。

アラインメントとは

align: 整列すること
アラインメントは"CPUが1度に処理できるデータサイズのこと"です。
1バイトは8ビットであるので、32ビットCPUでは4バイトのデータを一度で読み書きすることができます。この4バイトのことをワードといいます。
この特性を活かし、int型の4ビットを4バイトの始まりのところに配置することで効率的に処理をすることができます。「4バイトにアラインする(整列する)」という。
C言語でchar型とint型をそれぞれ宣言した場合、5バイトになる。
4ビットの場合
1 2 3 4 (ビット)
char | int | int | int
int | | |

となり、2回処理が行われてしまうため、非効率的である。
また、使用しているCPU、コンパイラによってアラインメントは変わってくるそうです。