任何人都可以请告诉我有什么特殊要求在C程序中使用EXTERN
或GLOBAL
变量吗? 如果我从gloabl变为extern,我在下面的程序中看不到任何区别。extern和c中的全局
#include <stdio.h>
#include <stdlib.h>
int myGlobalvar = 10;
int main(int argc, char *argv[])
{
int myFunc(int);
int i;
i = 12;
myGlobalvar = 100;
printf("Value of myGlobalvar is %d , i = %d\n", myGlobalvar, i);
i = myFunc(10);
printf("Value of passed value : %d\n",i);
printf("again Value of myGlobalvar is %d , i = %d\n", myGlobalvar, i);
system("PAUSE");
return 0;
}
int myFunc(int i)
{
i = 20 + 1000;
//extern int myGlobalvar;
myGlobalvar = 20000;
// printf("Value of passed value : %d",i);
return i;
}
如果取消注释extern int myGlobalvar
,值不会改变。
两者之间是否有任何的correct
区别?
任何人都可以请纠正我吗?
除了可能对变量名称的可见性之外,没有行为差异。 – 2010-04-16 11:38:54