C / C++ / Linux / —— 学习笔记
2014-08-05 19:15
337 查看
1、__cplusplus的用处
#ifdef __cplusplusextern "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
相关文章推荐
- [Linux]C++学习笔记(一)
- [Linux]C++学习笔记(五)
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- MySQL学习笔记_11_Linux下C++/C连接MySQL数据库(一)
- [Linux]C++学习笔记(四)
- c++ 学习笔记(高级linux编程) day5
- c++ 学习笔记(高级linux编程) day10
- c++ 学习笔记(高级linux编程) day8
- MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三) --处理返回数据
- [Linux]C++学习笔记(三)
- c++ 学习笔记(高级linux编程) day2
- linux c++学习笔记0630
- c++ 学习笔记(高级linux编程) day4
- [Linux]C++学习笔记(七)
- [Linux]C++学习笔记(二)
- linux 编程学习笔记(1)搭建c(c++)开发环境
- c++ 学习笔记(高级linux编程) day1
- c++ 学习笔记(高级linux编程) day11
- c++ 学习笔记(高级linux编程) day14
- c++ 学习笔记(高级linux编程) day6