都在函数外,全局声明时:
1,extern int a; 仅声明,而没有定义a, 还没为a分配存储空间
2,extern int a = 0; 错误, 此时不要定义. 用G++ 编译不会报错,但是不能编译出来的文件不能执行.
具体用法:
在头文件中仅 声明: 如
// test.h
#include <iostream>
extern int i;
void fun();
在源文件中还要全局定义!
//test.cpp
#include "test.h"
int i;
void fun(){
printf("in fun() : %d \n",i);
i = 100;
printf("in fun() : %d \n",i);
}
然后在其它文件中要调用该变量时,直接用就行了,不必定义
//main.cpp
#include <iostream>
#include "test.h"
using namespace std;
int main(){
fun();
i = 3;
printf("in main() : %d\n",i) ;
fun();
return 0;
}