目录
extern "C"的定义
当我们用c++写一些函数的时候,需要将这些函数提供给c语言的程序时候,因为二者命名规则的不同导致c语言无法调用c++写的函数,这时候,我们可以将c++写的函数前面添加一个extern "C"
,说明这个函数是以c语言的风格命名的,这样就可以调用这个函数了
c++中gcc的命名规则,_Z+函数名长度+函数名+类首字母
c中的命名规则,函数名
extern "C"的使用
int Add(int x, int y) //在c++中,链接时候的函数名是_Z3Addii
{ //在c中,链接时候的函数名是Add
return x + y;
}
extern "C" int Add(int x, int y)
{
return x + y;
}
当我们在前面添加extern "C"的时候,c++的链接时候的函数名也是Add了
注意:经过extern "C"修饰的函数不能进行函数重载了
经过extern "C"修饰的函数可以和没经过extern "C"修饰的函数同名存在