由於C++的函數簽名與C的函數簽名規則不一樣,前者容許函數重載,使得它的函數簽名必須反映參數的類型和順序,然後者不一樣,只是一個函數名(有些編譯器還要加個下劃線),致使C++調用C函數或是彙編函數時,產生連接錯誤。因此C++擴展了"extern",當調用C函數或是使用C調用約定的彙編時,對於聲明須要添加: 函數
#ifdef __cplusplus extern "C" { // 聲明 } #endif