全局作用域,文件作用域,多文件作用域,有什么区别?
全局变量具有全局作用域指的是在整个工程里都有效。文件作用域又叫单文件作用域,定义在所有函数之外的标识符都具有文件作用域。作用域为定义开始,到整个源文件结束。他说的这个整个是指的整个工程里的所有源文件吗?还是指自己定义声明所在的那个源文件?为什么还说全局变量和函数都具有文件作用域!多程序作用域也称为多文件作用域。属于程序作用的通过extern关键字进行说明的外部变量以及外部函数说的到底是什么意思? 本帖最后由 风过无痕1989 于 2020-10-1 03:12 编辑我作了一张图:
p,q,c1,c2都是全局变量,但它们的作用范围不同,在main函数和f2函数中可以使用全局变量p,q,cl,c2,但在函数f1中只能使用全局变量p,q,而不能使用cl和c2.
在一个函数中既可以使用本函数中的局部变量,也可以使用有效的全局变量。打个通俗的比方:国家有统一的法律和法规,各省还可以根据需要制定地方的法律和法规。在甲省,国家统一的法律法规和甲省的法律法规都是有效的,而在乙省,则国家统一的法律法规和乙省的法律法规有效。显然,甲省的法律法规在乙省无效。
设置全局变量的作用是增加了函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数中全局变量的值。相当于各个函数间有直接的传递通道。由于函数的调用只能带回一个函数返回值,因此有时可以利用全局变量来增加函数间的联系渠道,通过函数调用能得到一个以上的值。
如果还是没弄明白,请去读这篇博文:extern 使用方法总结 https://www.cnblogs.com/renyuan/archive/2012/11/30/2796801.html 兄弟,这张图说得很明白了呀 乐乐学编程 发表于 2020-10-1 16:43
兄弟,这张图说得很明白了呀
嗯。我知道了!刚学基础不好
页:
[1]