一般而言,在C中,如果调用函数,其一般都得需要在调用前进行声明,但在实际使用中调用函数其也并未对函数进行声明,如下:
在1.c中:
int add(int a, int b)
{
return a+b;
}
在2.c中:
#include <stdio.h>
void main()
{
int a = 1, b =2; c = 0;
c = add(a, b);
printf("%d\n",c);
}
在对上述两文件进行编译后,结果为
3
可以发现,函数如果不声明为static的属性,则其默认属性为extern。
extern的使用方法是直接了当的,想引用哪个函数就用extern声明哪个函数。这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。
可以说,extern更多用来声明函数,而较少用来定义函数,因为函数如不声明为static,则默认为extern属性的。