Bootstrap

内部函数和外部函数的区别

  • 外部函数:可以被其他文件中函数所调用,则被称为外部函数。定义外部函数在函数类型名前加extern。调用时还是要加#include "文件名"的。
/*main1.c*/
#include<stdio.h>
void f();
void g(){
	f();
}
/*main2.c*/
#include<stdio.h>
#include "main1.c"
void f(){
	printf("in main:f().\n");
}
int main(){
	void g();
	g();
}

此时main1.c中的g()调用了main2.c中的f()。

  • 内部函数:如果函数只能被本文件中其他函数所调用,则被称为内部函数。定义内部函数是在函数类型名前加static。

而当在main2.c加上static后

#include<stdio.h>
#include "main1.c"
static void f(){
	printf("in main:f().\n");
}
int main(){
	void g();
	g();
}

报错显示main1.c找不到f()函数。

【注意】主函数无论在那个文件都是可以调用内部函数和外部函数的。

【注意】c语言规定,定义函数时省略extern,则默认为外部函数。

;