C/C++实现跨文件共享全局变量详解
作者:乱蜂朝王
这篇文章主要为大家详细介绍了C/C++如何实现跨文件共享全局变量,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
为了实现跨文件共享全局变量,我们可以使用 extern 关键字。extern 关键字用于声明一个变量,该变量在其他地方已经定义。它告诉编译器这个变量在其他文件中已经定义了,不需要重新分配内存空间,只需要引用即可。
效果
项目
代码
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 << "参数初始化 全局变量 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 << "打印参数 全局变量 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(); }
到此这篇关于C/C++实现跨文件共享全局变量详解的文章就介绍到这了,更多相关C++跨文件共享全局变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!