C语言全局变量多文件使用
2011-03-18 11:18
323 查看
定义一个全局变量,想在多个文件中使用,代码如下:
只能在一个文件里面赋初值,否则链接出错。
看到个C的题:
全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
上面那种是不可以的,但是在前面加上static就可以了。加上static就是静态全局变量了,只在本模块中使用。
全局变量(外部变量)的说明之前再冠以static
就构成了静态的全局变量。全局变量本身就是静态存储方式,
静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,
当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,
在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,
因此可以避免在其它源文件中引起错误。
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,
限制了它的使用范围。
//var.h extern int var ; //var.c #include"var.h" int var = 10; //otherA.c #include"var.h" //otherB.c #include"var.h" //otherC.c #include"var.h"
只能在一个文件里面赋初值,否则链接出错。
看到个C的题:
全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
上面那种是不可以的,但是在前面加上static就可以了。加上static就是静态全局变量了,只在本模块中使用。
全局变量(外部变量)的说明之前再冠以static
就构成了静态的全局变量。全局变量本身就是静态存储方式,
静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,
当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,
在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,
因此可以避免在其它源文件中引起错误。
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,
限制了它的使用范围。
相关文章推荐
- C语言全局变量多文件使用
- c语言中头文件的建立与使用-函数、全局变量、全局数组
- C语言全局变量多文件使用
- C++ 和 C语言 头文件使用全局变量的异同
- C语言全局变量多文件使用
- C语言全局变量多文件使用
- C语言:全局变量在多个文件中的使用方法
- C语言如何在两个文件中访问同一个全局变量
- 在x86汇编中使用C语言的全局变量
- c语言中全局变量在不同文件中的引用(一)
- c语言全局变量与局部变量(当变量重名时)的使用情况
- Day24、错误处理、使用C语言操作环境变量、进程映射、栈的原理(全局、静态变量)
- 在头文件中定义变量以及static变量意味着什么?全局变量要如何正确使用?关键字extern要怎么用?
- C语言如何在两个文件中访问同一个全局变量
- 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)
- Matlab函数文件中全局变量的使用
- c语言中全局变量在多个文件中使用
- C语言关闭日志文件时忘了将日志文件全局变量指针置为NULL
- C++全局变量在多个源代码文件中的使用
- 多个文件使用同一全局变量(未初始化) 以及局部变量重复定义