(一)关于程序的编译和链接
C/C++的源代码,首先把源代码编译成中间件代码,win下是.obj后缀,unix是.o后缀,生成这些后缀的过程叫做编译,然后把.obj或者.o文件合在一起成为一个可执行文件的动作叫做链接。
链接程序要求每个不同的函数都有不同的符号名。在C中,一个名称只对应一个函数。
C语言的编译器可能将spiff这样的函数名翻译为*_spiff*,这种成为C语言链接性。但是在C++中,函数有
重载的可能,必须将这些函数翻译位不同的符号名称。So,C++编译器执行名称矫正或名称修饰,为重
载函数生成不同的符号名称。for example, spiff(int) 转换为*_spiff_i* , spiff(double,double)转换为
_spiff_d_d,此为C++的语言链接。
如何在C++中是用C库中的文件符号?
1 | extern "C" void spiff(int); |