extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。extern是声明不是定义,不分配存储空间。
static定义的变量或函数,只能在本文件使用。
程序设计风格:
1、不要在.h文件中定义变量,容易出现重复定义错误。
2、尽量使用static关键字把变量定义限制于该源文件作用域,除非变量被设计成全局的。
3、可以在头文件中声明一个变量,在用的时候包含这个头文件就声明了这个变量。
visual studio2017环境下简单的引用其他文件中的变量或函数:
- a.h文件声明a.cpp文件中的变量和函数
extern int test; //声明变量
extern void a(); //声明函数
- a.cpp文件定义变量和函数
#include "stdafx.h"
int test; //定义变量,分配空间
void a() //定义函数,分配空间
{
printf("test 2= %d\n", test);
printf("a文件\n");
}
- b.h包含a.h头文件
#include "a.h"
- b.cpp文件调用a.cpp文件定义的变量或函数
#include "stdafx.h"
#include "b.h"
int main()
{
test = 2;
printf("test = %d\n", test);
a();
printf("hello world\n");
return 0;
}