C++ extern定义多文件共享全局变量

C++ extern定义多文件共享全局变量,第1张

思路

参考知乎提问“在C++中如何使用全局变量?”

#include 
#include 

std::string msg; //这个就叫全局变量

int main()
{
  msg = "Hello, world!";
  std::cout << msg << std::endl;

  return 0;
}

不过呢,这么做以后你会逐渐逐渐遇到各种问题,比如说多个.cpp文件都要用到同一个全局变量咋办?
你需要做的是在一个.cpp里定义这个变量,然后在头文件里extern这个变量。问题解决。
头文件里写:extern std::string msg;
某一个.cpp文件里写:std::string msg;
所有引用了这个头文件的cpp文件里就都可以使用msg这个全局变量了。

例子

state.h:

#ifndef state_h
#define state_h

const int MAX = 200;

extern int num;
extern int array[MAX];

#endif

state.cpp:

#include "state.h"

int num = 0;
int array[MAX];  //即使不赋值,也需要在此定义

class1.cpp:

extern int num;
extern int array[MAX];

num++;
array[0] = 1;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存