C语言中全局变量的定义与调用
2009-12-29 14:43
381 查看
1. 谭浩强 书中对‘全局变量’的定义
在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。
建立全局变量的作用是增加了函数间数据联系的渠道。
2. 谭浩强 书中对‘全局变量’的声明
用extern声明:
如果外部变量不在文件的开头定义,其有效的作用范围只能从定义点到文件结束。如果在定义点之前的函数想引用该外部变量,则应该在应用之前用关键字extern对该变量作‘外部变量声明’。表示该变量是一个已经定义了的外部变量。有了此声明,就可以从声明处起,合法的调用该外部变量。
用static声明:
有时在程序中希望某些外部变量只限于被本文件引用,而不能被其他文件引用。这时就可以在定义外部变量时在其前面加一个static声明。此时的外部变量也成为静态全局变量。
3. 需要注意的地方
外部变量的定义和声明是不同的。外部变量的定义只能有一次,它的位置在所有函数之外,而统一文件中的外部变量的声明可以有多次,它的位置可以在函数之内,也可以在函数之外。系统根据外部变量的定义,而不是声明,分配存储单元。对外部变量的初始化,只能在定义时进行,而不能在声明中进行。
在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。
建立全局变量的作用是增加了函数间数据联系的渠道。
2. 谭浩强 书中对‘全局变量’的声明
用extern声明:
如果外部变量不在文件的开头定义,其有效的作用范围只能从定义点到文件结束。如果在定义点之前的函数想引用该外部变量,则应该在应用之前用关键字extern对该变量作‘外部变量声明’。表示该变量是一个已经定义了的外部变量。有了此声明,就可以从声明处起,合法的调用该外部变量。
int A=13, B=-8; .... main() { extern int A,B;//也可以写成extern A,B; .... } |
有时在程序中希望某些外部变量只限于被本文件引用,而不能被其他文件引用。这时就可以在定义外部变量时在其前面加一个static声明。此时的外部变量也成为静态全局变量。
static int A; |
外部变量的定义和声明是不同的。外部变量的定义只能有一次,它的位置在所有函数之外,而统一文件中的外部变量的声明可以有多次,它的位置可以在函数之内,也可以在函数之外。系统根据外部变量的定义,而不是声明,分配存储单元。对外部变量的初始化,只能在定义时进行,而不能在声明中进行。
相关文章推荐
- C语言中全局变量的定义与调用
- C语言全局变量定义方法
- C语言全局变量定义方法
- c语言头文件中定义全局变量的问题
- C语言如何跨文件调用函数定义中声明的变量
- 学习笔记---C语言中全局变量,变量,常量的定义与使用
- C语言中全局变量的定义及重复包含问题
- C语言全局变量定义-2014/5/5
- C语言头文件定义全局变量问题
- C语言中定义全局变量要注意的地方
- keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 在vue中多次调用同一个定义全局变量的实例
- 微信小程序定义和调用全局变量globalData
- 两个cpp文件调用同一个h文件,出现全局变量多次定义错误!
- C语言定义全局变量
- MFC 定义和调用全局变量的一种方法
- VC中全局变量的定义和调用
- [C语言项目]防止头文件和全局变量重复定义
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!