本帖最后由 洪吉童 于 2015-10-5 09:07 编辑
1、我在test.c中定义了static全局变量count- /********test.c***********/
- #include"stdio.h"
- #include"test.h"
- static int count=5;
- void test()
- {
- printf("count=%d",count);
- }
复制代码
- /*******main.c************/
- #include"stdio.h"
- #include "stdlib.h"
- #include"test.h"
- int count=6;
- void main(){
-
- printf("count=%d\n",count); //打印count值
- test();
- system("pause"); //DOS窗口停留
- }
复制代码 为什么打印结果是count=5
count=5
既然是static变量不是只能在本文件中使用吗?怎么在main.c中也能用了?
2、如果我在test.c中不用static修饰count
- /********test.c***********/
- #include"stdio.h"
- #include"test.h"
- int count=5;
- void test()
- {
- printf("count=%d",count);
- }
复制代码
在main.c中也不修饰全局的变量count- /*******main.c************/
- #include"stdio.h"
- #include "stdlib.h"
- #include"test.h"
- int count=6;
- void main(){
- printf("count=%d\n",count); //打印count值
- test();
复制代码
打印结果仍然是:count=5 count=5
不是应该报错有两个同名的变量吗?既然用不用static都一样,那它起什么作用?
PS:编译平台VC6.0
|
|