涉及到文件有:
主函数main()所在文件:diaoyong.c;
所调用外部文件:function.c;
所调用外部文件头文件:function.h
外部文件function.c
#include "stdio.h"
int fun(int a, int b)
{
return a + b;
}
int times(int a, int b)
{
return a * b;
}
int input = 33;
int output = 12;
外部文件头文件function.h
//#ifndef __FUNCTION_H__
//#define __FUNCTION_H__
int fun(int, int);
int times(int, int);
int input;
//#endif
main函数所在.c文件
#include <stdio.h>
#include "function.h" //需要引用的函数在头文件.h里的声明已经为extern类型了
//extern int input; //由于input已经在.h文件里进行了声明,所以此处不需要写extern来声明
extern int output; //由于.h文件里未进行声明,所以此处需要extern来进行声明
int main()
{
int a = 10, b = 20;
printf("a+b=%d,a*b=%d\n",fun(a,b),times(a,b));
printf("input=%d\n", input);
printf("output=%d", output);
return 0;
}
用extern和头文件引用的区别:
extern引用范围更小,可以提升预处理效率,在大型编译过程上差异显著
思考:尝试函数的extern引用