全域性變數

要宣告可在不同原始檔中訪問的變數的單個例項,可以使用關鍵字 extern 在全域性範圍內建立該變數。這個關鍵字表示編譯器在程式碼中的某個地方有一個這個變數的定義,所以它可以在任何地方使用,所有的寫/讀都將在一個記憶體位置完成。

// File my_globals.h:

#ifndef __MY_GLOBALS_H__
#define __MY_GLOBALS_H__

extern int circle_radius; // Promise to the compiler that circle_radius 
                          // will be defined somewhere

#endif
// File foo1.cpp:

#include "my_globals.h"

int circle_radius = 123; // Defining the extern variable
// File main.cpp:

#include "my_globals.h"
#include <iostream>

int main()
{
    std::cout << "The radius is: " << circle_radius << "\n";'
    return 0;
}

輸出:

The radius is: 123