根據this question我理解了將C庫與C++代碼鏈接起來的目的。現在假設如下:在頭文件中聲明'extern「C」'到C++共享庫的效果是什麼?
我有一個'.so'共享庫,用C++編譯器編譯。頭部有一個'typedef stuct'和一些函數聲明。如果標題包含extern「C」聲明...
#ifdef __cplusplus
extern "C"
{
#endif
// typedef struct ...;
// function decls
#ifdef __cplusplus
}
#endif
...有什麼影響?具體來說,我想知道是否有任何有害的副作用,因爲共享庫被編譯爲C++,而不是C.
是否有任何理由在這種情況下有外部「C」聲明?
你的庫只能從C++調用,還是你需要從C調用庫嗎? – 2010-04-06 21:06:20