close
extern "C"
1. 僅適用於 C++ compiler, 若再C compiler使用會出現error
2. 出現在function 宣告前面, 用來告知 C++ compiler, 將此function的symbol維持C style的形式
通常適用於當原始碼是C++與C混合的時候,用C++ compile到C code的時候
由於C++支援overloading, 所以為了支援overloading
會預設將原本function的function name轉譯成特別的名稱
EX: swap(int, int), swap(double, double)
這兩個function經過 C++ compiler所轉出的symbol格式會類似
_swap_int_int與_swap_double_double
以用來區分overloading後不同的function
因此就算function沒有被overloading, C++ compiler也會預設將function轉譯成
帶有參數型別的名稱
如此會導致其他C code若利用extern的方法去reference function時出現link error
此時就需要extern "C" 告訴C++ compiler將此function做原型的轉譯
意即保持swap(int, int)
全站熱搜