2017-10-10 10 views
0

Cでグローバル初期化されていない変数を宣言すると、それが.bssセグメントに存在することがわかります。しかし、あなたがその価値を持ち、それを関数の中の何かに等しくするとどうなりますか?スタックセグメントに移動しますか?グローバル変数のメモリレイアウトを初期化する

答えて

1

正確な位置にとどまります。あなたはその価値を変えたばかりです。 bssセクションは、デフォルトでグローバル変数がゼロに初期化されているため、実行ファイルに直接変数を含めると(ディスク)スペースが浪費されるためです。プログラムの初期化後、変数bssはゼロ以外の値を持つことができます。

関連する問題