ローカル変数のスタックメモリの使われ方

こんな 感じに

char a = 0;
char b = 1;
char c = 2;
short int d = 0x1234;
short int e = 0x5678;
short int f = 0x9abc;
int x = 0xf0e1d2c3;

C言語でローカル変数を定義すると、下記の表の通りのイメージでスタックメモリに配置される。

アドレス
66949040int xc3
66949041d2
66949042e1
66949043f0
66949044未使用00
66949045未使用00
66949046short int fbc
669490479a
66949048short int e78
6694904956
6694904ashort int d34
6694904b12
6694904c未使用00
6694904dchar c02
6694904echar b01
6694904fchar a00

  • Intel CPU なので short int , int はリトルエンディアンで値を格納。
  • 4バイトごと(?)にメモリを使ってるので、変数cとd、fとxの間は未使用領域がある。