int global =100;//外部链接,所有文件皆可访问。
static int one_file=50;//内部链接,static关键字,单文件可以使用
void function2(){
static int count=0;//无连接,函数内部使用。静态变量。
}
//上述三种变量作用时间是程序执行开始到结束。所有静态变量不初始化都会被设定为0
2.定义声明与引用声明。定义声明会使系统为变量分配内存空间。引用声明使用extern关键字,声明变量放在另外的文件中,不分配内存空间。
但引用声明不能初始化否则就是定义声明了。
double up;//定义声明,值为0
extern int blem;//blem变量在另外的文件中定义
extern char gr='z';//对gr进行了初始化,变成了定义声明
3.应用实例
//file1.cpp
extern int cats=20;//定义申明
int dogs=22;//定义申明
int fleas;//定义声明
//file2.cpp
extern int cats;//引用声明
extern ing dogs;//引用声明
//file3.cpp
extern int cats;//引用声明
extern int dogs;//引用声明
extern int fleas;//引用声明
4.thread_local 本地线程变量
mutable //可更改的。可以更改const修饰的变量
volatile//易变的。用于编译器优化。可能会将变量放入寄存器中。
例:
struct data{
char name[30];
mutable int accesses;
};
const data veep={"Hello",0};
strcpy(veep.name,"Lily");//不合法 const修饰。
veep.accesses++;//合法mutable 修饰
5.const修饰
//file1.cpp
const int fingers=10;//视为static const int fingers=10;
//file2.cpp
extern const int fingers;//外部链接常数,不能被赋值,只能使用。(和申明结合)
ex:最好将Const修饰的变量放入头文件中。
extern const int states=50;//外部常变量申明
标签:const,变量,作用域,int,extern,声明,定义
From: https://www.cnblogs.com/zhongta/p/18325342