extern聲明的變量一般位於頭文件中,作用域從聲明起到頭文件結束以及include該頭文件的文件的末尾。
頭文件:
- #include <stdio.h>
- extern int numbers;//can`t initialized a extern variable
- extern void test(){
- printf("test\n");
- }
- void init_numbers(int target)
- {
- numbers = target;
- }
- void increase()
- {
- printf("Now numbers is %d\n",++numbers);
- }
- void decrease()
- {
- printf("Now numbers is %d\n",--numbers);
- }
主文件:
- #include "Extern_variable_test.h"
- int numbers;
- int main()
- {
- init_numbers(3);
- test();
- increase();
- decrease();
- }
可以看出extern可以用於聲明變量和定義函數,但是將extern用於函數是個多餘的舉動。