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

相關文章
相關標籤/搜索