栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++小知识03 —— extern、static

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++小知识03 —— extern、static

extern

该关键字的意思是用来说明此变量或函数是定义在别的文件中的,在此文件中引用。

举个例子,你在a.cpp中想调用b.cpp中的int x,你就可以在a.cpp文件中声明

 extern int x

能够被其他文件引用的extern变量通常是全局变量。

还有一点比较重要的就是,你可以在a.cpp文件中的任何一个地方调用该变量,比如你可以在一个自定义函数的内部调用该变量,但是此时该变量的生命周期仅局限于该函数的声明周期之中。

static

该关键字的意思是用来说明此变量或函数不能再别的文件中引用

举个例子,下面一个是a.cpp,一个是b.cpp

char a = 'A'; 
void msg() 
{ 
    printf("Hellon"); 
}
int main(void) 
{ 

extern char a; 

printf("%c ", a);

msg();

return 0;  
}

此时运行的结果是

A Hello

此时我们就会想,为什么a.cpp中的函数再b.cpp中可以用,这个就是extern的作用,未加static关键字的全局变量和函数具有全局可见性,其他源文件中也可以引用。如果加上static关键字,就会对其他源文件进行隐藏,例如再a.cpp中的msg()函数中前家上static ,b.cpp就不能对msg进行引用。

调用了static关键字的变量或者函数还有一个特点就是,在程序开始时就会进行初始化,并且内存存放在静态区,而不是堆区或者栈区。

extern和static

(1)extern表明该变量在别的地方已经定义过了,在这里要使用那个变量。

(2)static 表示静态的变量,分配内存的时候,存储在静态区,不存储在栈上面。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号