|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zxcvbnmasdf 于 2021-11-6 16:02 编辑
想问下各位大佬,函数和全局变量文件作用域是从声明位置开始到文件的结尾处,还是从定义位置开始从文件的结尾处
例如下面这个代码,func函数的作用域是从第3行对它的声明void func(void);开始到结尾,还是从下面17行定义func函数开始到结尾
还有全局变量count,因为上面第7行有用extern声明了count,所以count的作用域是在main函数中和下面15行定义int count;到结尾吗?
- #include<stdio.h>
- void func(void);
- int main(void)
- {
- extern int count;
- func();
- count++;
- printf("In main,count=%d\n",count);
-
- return 0;
- }
- int count;
- void func(void)
- {
- count++;
- printf("In func,count=%d\n",count);
- }
复制代码
本帖最后由 jackz007 于 2021-11-6 16:30 编辑
全局变量和函数一样,其作用域都是从定义(或声明)的位置开始,一直到本源代码文件结束,extern 定义的是外部变量,这个变量使用的是其他源代码文件中定义的同名全局变量。如果在函数中定义了与全局变量同名的变量,那么,这个变量只能是函数的同名局部变量,与全局变量毫无关系。
|
|