全局变量的问题 ?
int a=1,b=2;///???????max(inta ,int b)
{
int c;
c=a>b?a:b;
return(c);
}
main()
{
int a =8;
printf("%d",max(a,b));
}
如果把第1行改成:
extern int a=1,b=2;
有没有区别?我知道statci int a=1;,但是不知道这个区别。
谢谢啊!
这里涉及到的是数据的存储类型:
在C语言中数据的存储类型有四种:auto register extern statci
auto 自动型 通常省略。。。即我们参说明的数据 int a 等 是省略auto 的数据说明;
register 寄存器型 如果把变量说明为寄存器类型,那么是把他存储到寄存器中,这样比操作内存快的多。
extern 外部参照型 用于多个编译单位之间传递数据,如果要实现跨文件数据访问则必须声明为 extern,还有extern 存 储在静态数据区中的,在程序执行过程中,一直占用着空间
static 静态型
在这里extern 和static 没有区别!