http://hi.baidu.com/xiaoxiaolq/blog/item/1edc2af30dd4915a342acc5e.html
__BEGIN_DECLS 和 __END_DECLS 的理解

在C语言代码中头文件中,充斥着下面的代码片段:(sys/cdefs.h)

  1. __BEGIN_DECLS
  2. .....
  3. .....
  4. __END_DECLS
  1. #if defined(__cplusplus)
  2. #define __BEGIN_DECLS extern "C" {
  3. #define __END_DECLS }
  4. #else
  5. #define __BEGIN_DECLS
  6. #define __END_DECLS
  7. #endif

扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能够调用C编译生成的中间代码。

由于C语言的头文件可能被不同类型的编译器读取,因此写C语言的头文件必须慎重。

05-14 14:59