楼主用过C++没有?
C++允许重载。
这意味着,两个函数可以有不同的body但是有相同的函数名称。
例如
int func(int);
int func(int,int);
但是编译的时候怎么办呢?
不同的过程当然必须是不同的名称,不然怎么跳转?
于是每个函数后面都会被加上很多字符,变成
func@ASDHIUHFUSD#SDF1 这样的形式。
而对于一个C程序而言,不需要这么做。
extern "C"就是告诉编译器,按照C的方式,不要这么做!
如果你的代码不是C/C++混用,你不必担心这个。