在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