什么可以在c ++中初始化全局变量

rub*_*buc 2 c++ syntax initialization global-variables

你能用c ++初始化全局变量吗?如果可能的话,允许使用什么值?

ssu*_*ube 5

允许的值取决于变量的类型.对于一个int,0或42是好的.对于一个string,"你好世界"的作品.初始化全局变量与初始化其他变量完全相同,因此您可以自由使用所有变量.

通常最好保持简单; 如果你需要一个全局的复杂初始化器,变量可能在错误的位置,但如果需要你可以做很多.

这样做的语法最基本的是:

int global_Int = 42;
string global_String = "Hello World";
Run Code Online (Sandbox Code Playgroud)

但是,如果这是在头文件中完成的(因为全局变量通常在公共头中声明),您将获得重复的声明和错误.要解决这个问题,请使用extern关键字声明它们,然后在代码文件中初始化:

标题:

extern int global_Int;
extern string global_String;
Run Code Online (Sandbox Code Playgroud)

码:

#include "header.hpp"

int global_Int = 42;
string global_String = "Hello World";
Run Code Online (Sandbox Code Playgroud)

然后只需在需要使用变量时包含标题.您还可以根据需要添加其他关键字(例如,如果您需要const全局).