ホームページ > バックエンド開発 > C++ > C で静的変数のリンク エラーが発生するのはなぜですか?

C で静的変数のリンク エラーが発生するのはなぜですか?

Patricia Arquette
リリース: 2024-12-31 08:02:09
オリジナル
407 人が閲覧しました

Why Am I Getting a Static Variable Link Error in C  ?

静的変数のリンク エラー [重複]

C プログラミングでは、静的変数が宣言されていても定義されていない場合に、リンク エラーが発生することがあります。コード。このエラーは、リンカーがリンク段階で静的変数の定義を見つけられないことを示します。

指定されたコードでは、クラス Log にはヘッダー ファイル Log.h で宣言された静的変数 theString がありますが、それは実装ファイル Log.cpp では定義されていません。リンク エラーを解決するには、静的変数を実装ファイルで定義する必要があります。

Log.cpp 内の修正されたコードは次のようになります。

#include "Log.h"
#include <ostream>

string Log::theString;  // Define the static variable here

void Log::method(string arg) {
    theString = "hola";
    cout << theString << endl;
}
ログイン後にコピー

さらに、名前空間 std を使用します。ヘッダーファイルの行。これにより、名前の競合や潜在的なエラーにつながる可能性のある、std シンボルによるグローバル名前空間の汚染が防止されます。

以上がC で静的変数のリンク エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート