code
c++
一般呼叫函數,電腦的機器語言指令會紀錄目前工作階段的記憶體位址,然後跳至函數的記憶體位置處理完程序後,並回到原先的位址上,而這樣來回會造成時間上的額外負擔。
C++
於是提供這種內嵌函數,當我們加入關鍵字時,在編譯時便會把函數中的程式直接展開。
inline
class S{
public:
int square(int s); // declare the function
};
inline int S::square(int s){ // use inline prefix
}
macro由預處理器管理,內聯函數由C++
編譯器管理。而macro無法訪問類內私有成員。
extern "C"
C++
支援函數重載,而C
則不支援。函數被C++
編譯後在符號庫中的名字與C語言的不同,因此使用extern "C"{}
,可以讓C++
在引用C
時不會多加處理(mangled name
),而能正常使用。