extern 放在变量前,表明该变量在其他地方定义,而这里的变量是对其他地方定义的变量的声明,表示这里需要使用。
extern 放在函数前,该函数在其他地方定义过,这里只做声明。例如下面 没有include "Header.h"
Header.h
#ifndef _HEADER_H_
#define _HEADER_H_
extern int a;
int function1();
#endif
Source.cpp
#include <stdio.h>
#include <iostream>
//#include "Header.h"
int a = 0;
extern int function1(); //声明Source1.cpp中定义的function1()
int main()
{
std::cout << a << std::endl;
a = 1000;
function1();
}
Source1.cpp
#include "Header.h"
#include <stdio.h>
int function1()
{
printf("a int another source file is %d\n",a);
return 1;
}