首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

外部变量的运用

2012-11-19 
外部变量的使用#include stdio.hint units 0/* an external variable*/void critic(void)int main(v

外部变量的使用
#include <stdio.h>
int units = 0; /* an external variable */
void critic(void);
int main(void)
{
  extern int units; /* an optional redeclaration */

  printf("How many pounds to a firkin of butter?\n");
  scanf("%d", &units);
  while ( units != 56)
  critic();
  printf("You must have looked it up!\n");
   
  return 0;
}

void critic(void)
{
  /* optional redeclaration omitted */
  printf("No luck, chummy. Try again.\n");
  scanf("%d", &units);
}
上面这个程序extern int units;能否去掉,去掉后是否影响?如果只把extern去掉会怎样?另外如果不定义外部变量只声明int units;又会如何?对外部变量不解,希望得到详细解答,谢谢。

[解决办法]
尤其是对于变量来说。
  extern int a;//声明一个全局变量a
  int a; //定义一个全局变量a
  extern int a =0 ;//声明一个全局变量a 并给初值。
  int a =0;//定义一个全局变量a,并给初值,
  声明之后你不能直接使用这个变量,需要定义之后才能使用。
  第四个等于第三个,都是定义一个可以被外部使用的全局变量,并给初值。
  糊涂了吧,他们看上去可真像。但是定义只能出现在一处。也就是说,不管是int a;还是extern int a=0;还是int a=0;都只能出现一次,而那个extern int a可以出现很多次。
  当你要引用一个全局变量的时候,你就要声明extern int a;这时候extern不能省略,因为省略了,就变成int a;这是一个定义,不是声明。
[解决办法]

extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要 被其它文件使用。因此, 必须将全程变量通知每一个程序模块文件, 此时可用 extern来说明。

热点排行