Why? 在C++中调用被C编译后的函数,要在声明的前面加extern "C"

在C++程序中调用被C编译器编译后的函数,为何要在声明的前面加extern "C"?ide

答:c语言不支持重载,C++支持重载函数

为了告诉编译器这个函数是C的编译风格,因此在找这个函数的时候也要按照C的风格去找spa

好比:在C++中写一个add函数编译器

      int add(int n1,  int  n2)it

它找到的是?add@@YAHHH@Z编译

  ?函数名@@YA参数参数返回值@Zclass

    H表明int  M表明floatfloat

@@YA表示开始      @Z表示结束程序

在C语言中写一个add函数语言

   int add(int n1,  int  n2)

它找到的是_add

相关文章
相关标签/搜索