extern声明的变量一般位于头文件中,作用域从声明起到头文件结束以及include该头文件的文件的末尾。

 

头文件:

 


  
  1. #include <stdio.h> 
  2.  
  3. extern int numbers;//can`t initialized a extern variable 
  4.  
  5. extern void test(){ 
  6.     printf("test\n"); 
  7.  
  8. void init_numbers(int target) 
  9.     numbers = target; 
  10.  
  11. void increase() 
  12.     printf("Now numbers is %d\n",++numbers); 
  13.  
  14. void decrease() 
  15.     printf("Now numbers is %d\n",--numbers); 

主文件:


  
  1. #include "Extern_variable_test.h" 
  2.  
  3. int numbers; 
  4.  
  5. int main() 
  6.     init_numbers(3); 
  7.     test(); 
  8.     increase(); 
  9.     decrease(); 

可以看出extern可以用于声明变量和定义函数,但是将extern用于函数是个多余的举动。