2个回答
展开全部
全局变量的作用域是从声明处到文件的结束
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。
例如:
int a,b; /*外部变量*/
void f1() /*函数f1*/
{ …… }
float x,y; /*外部变量*/
int fz() /*函数fz*/
{ …… }
main() /*主函数*/
{ …… }/*全局变量x,y作用域 全局变量a,b作用域*/
从上例可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。
如果一个工程有多个源文件, 那么在其中一个源文件中定义的全局变量,本工程的另外源文件也是可以引用的,同上说的用extern声明。
另外还有一种情况就是在定义全局变量时加了static关键字, 也就是叫静态全局变量, 那么它的作用域就局限于当前的源文件,其他的源文件包括同工程里的其他源文件都不可以使用它。
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。
例如:
int a,b; /*外部变量*/
void f1() /*函数f1*/
{ …… }
float x,y; /*外部变量*/
int fz() /*函数fz*/
{ …… }
main() /*主函数*/
{ …… }/*全局变量x,y作用域 全局变量a,b作用域*/
从上例可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。
如果一个工程有多个源文件, 那么在其中一个源文件中定义的全局变量,本工程的另外源文件也是可以引用的,同上说的用extern声明。
另外还有一种情况就是在定义全局变量时加了static关键字, 也就是叫静态全局变量, 那么它的作用域就局限于当前的源文件,其他的源文件包括同工程里的其他源文件都不可以使用它。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询