个人觉得函数声明(定义)在编译进库后仅仅是一段机器码,其名称仅仅用于定位这段机器码(类似于查表用的标识)
而 extern C 类的声明定义是用于协定这种标识使用规范的,因为有了这样的协定,则使用者(编译器)都知道如何正确的在链接库时引用到正确的位置。这样的声明定义不光涉及了 函数名处理,其实还有一个更近一步的协定时参数压入的规范(否则会出现参数不一致问题)