2017-11-28 6 views
-3

プロジェクトに2つのファイルがあり、両方のファイルで静的変数に同じ名前を使用していた場合、リンカエラーは発生しませんでしたが、メモリ内の2つの静的変数の名前を知りたいと思います。静的グローバルメモリ

答えて

1

静的変数は、宣言されているCファイルの外側(または「Cファイル」が「特定のファイルのファイルスコープ」であるスコープ外でも)には表示されません。したがって、衝突はなく、もちろん変数名はコンパイルされたコードでは関係ありません。

1

静的変数は、モジュール内でのみ表示され、ローカルリンケージを提供します。

  1. 関数内の静的変数は、関数呼び出し中に値を保持します。
  2. 静的グローバル変数または関数は、宣言されているファイルまたはモジュールでのみ表示されます。

静的指定子は静的記憶域期間と内部結合の両方を指定します。

静的記憶期間。保存期間はプログラムの実行全体であり、オブジェクトに格納された値はメイン関数の前に一度だけ初期化されます。

+0

返信いただきありがとうございます。ローカルスタティックの場合は –

+0

です。同じ名前の変数は名前のマングリング表現で表されますが、ここではメモリがこれらの2つの静的変数を異なるファイルで区別する方法を知りたいと思います。 –

関連する問題