【Muduo源码剖析笔记】 基础组件之Mutex
基本知识
https://blog.csdn.net/weixin_30710457/article/details/96409480
首先说明GUARDED_BY(mutex_)
这种用于clang编译器线程安全检查的部分不在本文讨论范围,如果需要详细了解,见此链接Thread Safety Analysis。
#if defined(__cplusplus)
#define __BEGIN_DECLS extern "C" {
#define __END_DECLS }
#else
#define __BEGIN_DECLS
#define __END_DECLS
典型的,一个C++程序包含其它语言编写的部分代码。类似的,C++编写的代码片段可能被使用在其它语言编写的代码中。不同语言编写的代码互相调用是困难的,甚至是同一种编写的代码但不同的编译器编译的代码。例如,不同语言和同种语言的不同实现可能会在注册变量保持参数和参数在栈上的布局,这个方面不一样。
为了使它们遵守统一规则,可以使用extern指定一个编译和连接规约。例如,声明C和C++标准库函数strcyp(),并指定它应该根据C的编译和连接规约来链接:
extern "C"指令非常有用,因为C和C++的近亲关系。注意:extern "C"指令中的Cÿ