【发布时间】:2010-04-16 11:36:32
【问题描述】:
谁能告诉我在 C 程序中使用 EXTERN 或 GLOBAL 变量有什么特殊要求吗?
如果我从 gloabl 更改为 extern,我看不出像下面这样的程序有什么不同。
#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 的区别吗?
谁能纠正我?
【问题讨论】:
-
没有行为差异,除了可能在变量名的可见性上。