C++函數標準頭

#ifndef __INCvxWorksh
#define __INCvxWorksh
#ifdef __cplusplus
extern "C" {
#endif
/*...*/
#ifdef __cplusplus
}
#endif
#endif /* __INCvxWorksh */
#ifndef __INCvxWorksh
#define __INCvxWorksh

編譯宏的作用是爲了防止重複引用。C++支持函數重載。C作爲過程語言並不支持函數重載。這是因爲編譯後C和C++的名字不同。假設某函數爲void foo(int ,int)

C編譯後爲_foo,C++編譯後爲_foo_int_int,C++ 就是靠這個機制來實現重載的。爲了實現C和C++的混合編程。C++提供了C++ 鏈接交換制定符號extern"C"來解決名字匹配問題。函數聲明錢加上extern"C"後

編譯器就會按照C 語言的方式進行編譯_foo,這樣C語言就可以調用C++ 的函數了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章