1. ホーム
  2. c++

[解決済み] 複数ファイル内のグローバル変数

2023-07-14 22:39:59

質問

2つのソースファイルがあり、共通の変数にアクセスする必要があります。これを行うための最良の方法は何ですか? 例:。

source1.cpp:

int global;

int function();

int main()
{
    global=42;
    function();
    return 0;
}

source2.cppです。

int function()
{
    if(global==42)
        return 42;
    return 0;
}

変数globalの宣言はstaticにすべきか、externにすべきか、両方のファイルにインクルードされるヘッダーファイルにすべきか、等々。

どのように解決するのですか?

グローバル変数を宣言する extern と宣言し、片方のソースファイルにのみ定義する必要があります。

common.h

extern int global;

<ブロッククオート

ソース1.cpp

#include "common.h"

int global;

int function(); 

int main()
{
    global=42;
    function();
    return 0;
}

<ブロッククオート

ソース2.cpp

#include "common.h"

int function()
{
    if(global==42)
        return 42;
    return 0;
}