1 基本含义
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
2 extern修饰变量的声明
举例->
如果文件led1.c需要引用led2.c中变量unsigned int a,就可以在led1.c中声明 extern unsigned int a; 然后就可以引用变 量a。
前提 变量a本身是否能够被引用
注意 能够被其他模块以extern修饰符引用到的变量通常是全局变量。extern unsigned int a可以放在led2.c中的任何地方,由 于变量作用域问题,个人喜欢将其放在开头或结尾。
3 extern修饰函数声明
从本质上来讲,变量和函数没有区别。
举例->
文件led1.c需要引用led2.c中的函数void delay_ms(),就可以在led1.c中声明 extern void delay_ms(); 然后就可以引用函 数void delay_ms()
4注意点
引用其他模块中函数->
常用方法 如包含这些函数声明的头文件。 解释:比如我在S3C2451_LED.c下可以包含S3C2451_LED.h的头文件,该头文件里有我需要 的函数声明和宏替换
区别->
extern 包含头文件 引用函数
extern的引用方式 简洁明了 用extern声明想引用的函数即可。同时,在编译时,会加快程序预处理的过程,提高效率。