详解C语言正确使用外来的关键字

  

利用关键字走读生,可以在一个文件中引用另一个文件中定义的变量或者函数、下面就结合具体的实例,分类说明一下。

  

        # include      int func ();      int main ()   {   func ();//1   printf (" % d”, num);//2   返回0;   }      int num=3;      int func ()   {   printf (" % d \ n”, num);   }   之前      

如果按照这个顺序,变量num在主要函数的后边进行声明和初始化的话,那么在主要函数中是不能直接引用num这个变量的,因为当编译器编译到这一句话的时候,找不到num这个变量的声明,但是在func函数中是可以正常使用,因为函数对num的调用是发生在num的声明和初始化之后。

  

如果我不想改变num的声明的位置,但是想在主要函数中直接使用num这个变量,怎么办呢?可以使用外面的这个关键字。像下面这一段代码,利用外来的关键字先声明一下num变量,告诉编译器num这个变量是存在的,但是不是在这之前声明的,你到别的地方找找吧,果然,这样就可以顺利通过编译啦。但是你要是想欺骗编译器也是不行的,比如你声明了extern int num;但是在后面却没有真正的给出num变量的声明,那么编译器去别的地方找了,但是没找到还是不行的。

  

下面的程序就是利用外来的关键字,使用在后边定义的变量。
  

        # include      int func ();      int main ()   {   func ();//1   extern int num;   printf (" % d”, num);//2   返回0;   }      int num=3;      int func ()   {   printf (" % d \ n”, num);   }   之前      

  

如果走读生这个关键字就这点功能,那么这个关键字就显得多余了,因为上边的程序可以通过将num变量在主要函数的上边声明,使得在主要函数中也可以使用。
  外面的这个关键字的真正的作用是引用不在同一个文件中的变量或者函数。

  

c

        # include      int main ()   {   extern int num;   printf (" % d”, num);   返回0;   }      公元前

        # include      int num=5;      void函数()   {   printf(“交流乐趣”);   }      

例如,这公元前里中定义了一个变量num,如果c中想要引用这个变量,那么可以使用外面的这个关键字,注意这里能成功引用的原因是,num这个关键字在公元前中是一个全局变量,也就是说只有当一个变量是一个全局变量时,走读生变量才会起作用,向下面这样是不行的。

  

面。c
  

        # include      int main ()   {   extern int num;   printf (" % d”, num);   返回0;   }      公元前

        # include      void函数()   {   int num=5;   printf(“交流乐趣”);   }      

另外,外面的关键字只需要指明类型和变量名就行了,不能再重新赋值,初始化需要在原文件所在处进行,如果不进行初始化的话,全局变量会被编译器自动初始化为0。像这种写法是不行的。

         extern int num=4;      

但是在声明之后就可以使用变量名进行修改了,像这样:

        # include      int main ()   {   extern int num;   num=1;   printf (" % d”, num);   返回0;   }      

如果不想这个变量被修改可以使用常量关键字进行修饰,写法如下:

  

mian.c         # include      int main ()   {   走读生const int num;   printf (" % d”, num);   返回0;   }      公元前

        # include      const int num=5;   void函数()   {   printf(“交流乐趣”);   }      

使用包括将另一个文件全部包含进去可以引用另一个文件中的变量,但是这样做的结果就是,被包含的文件中的所有的变量和方法都可以被这个文件使用,这样就变得不安全,如果只是希望一个文件使用另一个文件中的某个变量还是使用外来的关键字更好。

详解C语言正确使用外来的关键字