1. __BEGIN_DECLS
    2. .....
    3. .....
    4. __END_DECLS

很多时候,为了使 C 代码和 C++ 代码保持互相兼容的过程调用接口,需要在 C++ 代码里加上 extern "C" 作为符号声明的一部分。而你看的这个 libc 里为了使代码更易懂,就用宏做了替换。可以用 gcc 的预处理开关 -E 验证一下。

 

总;读头文件时,感到对此定义不是太理解,因此就找了点东西理解了下;

简单理解C头文件中的
__BEGIN_DECLS
.....
.....
__END_DECLS;

#if defined(__cplusplus)
    #define __BEGIN_DECLS extern "C" {
    #define __END_DECLS }
    #else
    #define __BEGIN_DECLS
    #define __END_DECLS
#endif
扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能够调用C编译生成的中间代码.
由于C语言的头文件可能被不同类型的编译器读取,因此写C头文件需慎重;