Renesas Synergy™

FAQ 1008242 : 内部変数がある場合、コンパイラはデータの型に関わらず4バイト境界にてスタックを確保しますか?

回答

内部変数は、データ型にあわせてスタックから領域を確保します。
char型であれば、1バイトです。

しかし、整列条件によりアラインされる可能性があります。
基本的にはauto変数の宣言順に領域が確保されますが、 最適化によりスタックに領域が確保されない場合もあります。
auto変数をサイズの大きい順に宣言することにより アラインされることが少なくなる可能性があります。
ただし、関数自体のスタックの領域を確保する際には、 4バイト境界になりますので、注意してください。
(関数内で1バイトのスタックしか使用しないとしても4バイト確保されます。)

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください