---
# System prepended metadata

title: C語言題庫-045

---

# C語言題庫-045
在C++ 程序中調用被C 編譯器編譯後的函數，
爲什麼要加extern “C”？
【標準答案】C++ 語言支持函數重載，C 語言不支持函
數重載。函數被C++ 編譯後在庫中的名字與 C 語言的
不同。假設某個函數的原型爲：void foo(int x, int y);
該函數被C 編譯器編譯後在庫中的名字爲_foo ，而
C++ 編譯器則會產生像_foo_int_int之類的名字。 C++
提供了C 連接交換指定符號extern“C”來解決名字匹配
問題。