关于C中的static类型的函数是与extern类型相对的,也就是说函数的调用方式并没有改变,只通过这个关键字影响了linker的行为。
下面在具体说说他们的区别,extern都知道,是指该函数在整个工程中可见;而static是指只在当前文件中可见,在其他文件中不可见。
举个例子,一个工程两个文件1.c和2.c
现在1.c里有定义一个static类型的函数
static int proc( int i ) {...}
2.c里声名了同样一个函数
int proc( int i ) ;
连接时报错
而把1.c中的static该成extern就可以了。从这里我们可以很明显的看到static函数与extern函数的差别。