全局变量与全局常量

1,全局常量

file_1.h

#pragma once
// 对于全局常量,我们可以用 const 限定词,可在不同文件中包含头文件的方式调用全局常量
const float PI = 3.14;

2,全局变量

file_2.h中声明

//对于全局变量,我们不能直接去掉const的方法
//为了防止变量重新定义(多个文件引用同一个头文件,那么造成变量重复定义,会报错)
//在头文件中用extern声明,在任意一处源文件中定义一次即可。其他cpp引用该变量的话,只需加入声明这个变量的头文件。
extern double R; 

file_2.cpp,其他任意一个且只能一个cpp中定义

// 在任意一处源文件中定义一次即可
double R = 3.14;

file_other.cpp

//其他文件加入对fiile_2头文件的引用即可
#include "file_2.h"
#include<iostream>
using namespace std;

void print_R() {
    cout << R << endl;
};

3,静态全局变量

非静态全局变量:

file_1.cpp

int n = 15;//定义非静态全局变量

 file_2.cpp

#include <iostream>
using namespace std;

extern int n;//可以直接通过extern取得非静态全局变量

void main() {
    cout << n << endl;
}

 静态全局变量:

file_1.cpp

static int n = 15;//定义静态全局变量

 file_2.cpp

#include <iostream>
using namespace std;

extern int n;//此时通过extern取得静态全局变量,会报错. 原因:static进行了文件隔离,是不能访问file_1定义的静态全局变量的。如果#include "file_1.cpp",那么久不会有这个问题了

void main() {
    cout << n << endl;
}

 

posted @   cheng4632  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示