一,全局变量中的外部变量,可以被本文件调用也可以被外部文件调用。
1,默认情况下,所有的变量都是外部变量。
2,不同文件,但同名的变量,都是一样的变量。
二,内部变量
1,须要带上static才起作用,且只能在本文件中使用。
2,不同文件,同名的文件,相互不影响。
三,作用
1,static 定义内部变量,定义和声明内部函数
2,extern 定义外部变量,定义和声明外部函数
关于extern:
相对来说extern的作用就广一些,大家都用,故在一般情况下,不写上extern也可以。但如果用到static必须写上一,全局变量中的外部变量,可以被本文件调用也可以被外部文件调用。
1,默认情况下,所有的变量都是外部变量。
2,不同文件,但同名的变量,都是一样的变量。
二,内部变量
1,须要带上static才起作用,且只能在本文件中使用。
2,不同文件,同名的文件,相互不影响。
三,用个代码来说明。
<span style="font-size:18px;">#include <stdio.h>
void test(); // 调用了外部函数,函数的声明。这里可不写extern
int main()
{
test();
return 0;
} */</span>
#include <stdio.h>
void test()
{
printf("调用了test函数\n"); // 定义一个外部函数
}
static void test2() // 定义一个内部函数
{
printf("调用了test2函数\n");
}
int main ()
{
test();
test2();
return 0;
}
#include <stdio.h>
void test()
{
//int a = 0; // 局部变量函数调用完就会销毁
//a++;
// printf("a的值是%d",a);
static int b = 0; //内部变量只能在test{}中起作用。程序结束时,它不会销毁。有了static后它不会再分配存储空间,它对优化性能有好处。如果一个变量经常用到,且是一个不变的数。
b++;
printf("b的值是%d",b);
}
int main()
{
test();
test();
test();
test();
return 0;
}