FAQ 1011637 : 変数は定義順に配置されますか?

Q: 質問

変数は定義順に配置されますか?


A: 回答

定義順に配置しますが、定義の前に参照した場合(関数内での参照は除く)はその参照した順番に配置します。

---------------------------------
extern unsigned char a;
extern unsigned char b;
extern unsigned char c;

unsigned char *p = &b;

unsigned char a;
unsigned char b;
unsigned char c;
---------------------------------
上記の場合、a, b, c の定義の前にbが参照されています。そのため、上位方向にb => a => c の順番で配置します。また、関数内static変数は最後に配置します。

 

 

適用製品

RH850ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください