Google Code Prettify

2013年9月29日 星期日

C/C++ 在C++ 中 使用 C語言 extern "C"


我們常會看到有些c++的code會用到下面的關鍵字將程式碼包起來

#ifdef __cplusplus
extern "C"{

#endif

/*

程式碼內容

*/

#ifdef __cplusplus

}

#endif

其實這是在c++語言編寫中,相容c語言的一種方式
在一開始我是先學c++,用的是visual c++ 2008
當時還傻傻分不清楚c語言和c++的差異
想說visual c 超棒的,可以完全向下相容c語言(因為printf 都可以正常使用@@)
直到有一天,在整合linux下的c code 進 windows時,才發覺大事不妙
沒辦法完全相容orz...

這時候才開始學會使用 extern "C" 去做相容,
不過整合過程中,才發現visual c++的extern "C"似乎無法完全相容C99的規範(vc 2012好像也不行)
後來又是一段大改的故事了@@






沒有留言:

張貼留言