您的位置:首页 > 运维架构 > Linux

C / C++ / Linux / —— 学习笔记

2014-08-05 19:15 337 查看

1、__cplusplus的用处

#ifdef __cplusplus

extern "C" {

#endif

...

#ifdef __cplusplus

}

#endif

C/C++编译器对函数和变量名的命名方法不一样(例如C++中重载的函数有多个名字,而C的函数只有一个名字),这样当C编译器去引用C++编译器编译出来的符号时,会找不到链接。因此,当一个头文件可能既被C程序引用,又被C++程序引用时,需要使用如上代码进行区分。

上面的写法太复杂了,况且两个大括号{和}分离,会造成有些编辑器的缩进错误。更好的手法是将如下代码定义在一个公共头文件中,然后所有其它头文件去引用它:

#ifdef __cplusplus

# define BEGIN_C_DECLS extern "C" {

# define END_C_DECLS }

#else

# define BEGIN_C_DECLS

# define END_C_DECLS

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: