C/C++實現(xiàn)跨文件共享全局變量詳解
為了實現(xiàn)跨文件共享全局變量,我們可以使用 extern 關(guān)鍵字。extern 關(guān)鍵字用于聲明一個變量,該變量在其他地方已經(jīng)定義。它告訴編譯器這個變量在其他文件中已經(jīng)定義了,不需要重新分配內(nèi)存空間,只需要引用即可。
效果

項目

代碼
Common.h
#pragma once
#include <iostream>
using namespace std;
struct para {
bool state;
int num;
string name;
};
//聲明全局變量
extern para g_static_para;
Common.cpp
#pragma once #include "Common.h" //定義全局變量 para g_static_para;
init_class.h
#pragma once
#include <iostream>
#include "Common.h"
using namespace std;
class init_class
{
public:
void init();
};
init_class.cpp
#include "init_class.h"
#include "Common.h"
void init_class::init()
{
cout << "參數(shù)初始化 全局變量 g_static_para" << endl;
g_static_para.state = true;
g_static_para.num = 20;
g_static_para.name = "測試信息2";
}
use_class.h
#pragma once
#include <iostream>
#include "Common.h"
using namespace std;
class use_class
{
public:
void print();
};
use_class.cpp
#include "use_class.h"
void use_class::print() {
cout << "打印參數(shù) 全局變量 g_static_para" << endl;
cout << "g_static_para.state:" << g_static_para.state << endl;
cout << "g_static_para.num:" << g_static_para.num << endl;
cout << "g_static_para.name:" << g_static_para.name << endl;
}
ConsoleApplication1-test.cpp
#pragma once
#include <iostream>
#include "Common.h"
#include "init_class.h"
#include "use_class.h"
using namespace std;
int main()
{
std::cout << "Hello World!\n";
init_class ic;
use_class uc;
std::cout << "----------------------\n";
g_static_para.state = false;
g_static_para.num = 10;
g_static_para.name = "測試信息1";
uc.print();
std::cout << "----------------------\n";
ic.init();
std::cout << "----------------------\n";
uc.print();
}
到此這篇關(guān)于C/C++實現(xiàn)跨文件共享全局變量詳解的文章就介紹到這了,更多相關(guān)C++跨文件共享全局變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何使用C++結(jié)合OpenCV進(jìn)行圖像處理與分類
在計算機(jī)視覺領(lǐng)域,OpenCV與C++結(jié)合能高效處理和分類圖像,C++的高執(zhí)行效率適合大規(guī)模數(shù)據(jù)處理,OpenCV提供豐富的功能,如圖像預(yù)處理和機(jī)器學(xué)習(xí)算法,安裝OpenCV需要配置環(huán)境和添加庫文件,本文詳細(xì)介紹了使用C++和OpenCV進(jìn)行圖像分類的過程,包括使用SVM和深度學(xué)習(xí)模型2024-09-09
c++ 內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別
內(nèi)聯(lián)函數(shù)是c++為了提高程序的運行速度做的改進(jìn),那么內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是什么,本文就來詳細(xì)的介紹一下,感興趣的朋友可以了解一下2021-05-05
基于C語言實現(xiàn)簡單的12306火車售票系統(tǒng)
火車售票系統(tǒng)給我們的出行帶來了極大的方面,那么他基于編程是如何實現(xiàn)的呢?今天小編抽時間給大家分享一個使用C語言寫的一個簡單的火車票系統(tǒng),感興趣的朋友參考下2016-09-09

