C++函数重载---底层实现原理
C++编写的代码,若去调用C编出来的库,是行不通的,因为C代码编译并不会发生命名倾轧行为,而C++代码编译会产生命名倾轧行为,所以函数名不匹配,则无法调用到C库中的函数。所以加入两个函数名相同的函数在编译之后的函数名也照样相同;消除倾轧的方法,在C++代码包含C库的头文件,加入extern “C”。总之一句话,倾轧是C++为了实现函数重载而设计的,不倾轧的extern “C”则是为了兼容C而后实现的。在.cpp文件中,虽然两个函数的函数名一样,但是他们在符号表中生成的名称不一样。