extern “c” 详解
来源:互联网 发布:主宰西游灵宠进阶数据 编辑:程序博客网 时间:2024/05/18 02:10
对于extern “c”的理解,一直不是很清楚,今天特意上网查看了,发现明朗多了,顾此总结一下:
#ifndef __MYTEST_H_ #define __MYTEST_H_ #ifdef __cplusplus extern "C" { #endif int add(int x,int y); #ifdef __cplusplus } #endif #endif
典型的c++写法
#ifdef
#endif
这种是成对出现的,叫条件编译,如果条件成立,那么中间的部分就会参与编译,不成立,中间的部分不参与编译,相当于被删除了。
extern "C"{} 是为了在c++中兼容c代码,表示{}中是代码是标准的c 语言代码,要用c的编译器来编译,而不是用c++的编译器来编译
#ifdef __cplusplusextern "C" {#endif#ifdef __cplusplus}#endif
光看这两部分,如果__cplusplus成立,那么这个就成对了,整个就相当于
#ifndef __MYTEST_H_ #define __MYTEST_H_ extern "C" { int add(int x,int y); } #endif
#ifndef __MYTEST_H_
#define __MYTEST_H_
#endif
这三句又是一个整体,是为了防止加载多次头文件,因为一般来说,我们的源文件会加载很多头文件,如果同一个头文件加载多次,明显就浪费了空间,所以用这种结构来避免
如果从来没加载过这个头文件, __MYTEST_H_没定义,所以条件成立
然后定义#define __MYTEST_H_如果还有另外一个源文件加载了这个头文件,此时由于之前加载过__MYTEST_H_就已经定义过了,#ifndef __MYTEST_H_就不成立了,也就不会再次加载这个文件了。
0 0
- extern详解与extern "C"
- C/C++extern详解
- 详解extern "C"
- 详解extern "C"
- extern "C" 详解
- extern "C"深入详解
- extern "C" 详解
- 详解extern "C"
- extern 'c'详解
- extern 'c'详解
- extern "C" 详解
- extern "C"详解
- extern "C"详解
- extern "C" 详解
- extern "C"详解
- Extern c详解
- C/C++ extern详解
- 详解extern "C"
- 解决maven与eclipse中@override出现must override a superclass method错误
- linux学习:进程简单操作
- 李嘉诚的深圳演讲
- IOS APP开发UI上得尺寸注意问题(屏幕、适配、分辨率)
- ConditionVariable
- extern “c” 详解
- ny独木舟上的旅行java
- iBatis中#和$占位符的区别
- 同时解决Wifi共享精灵启动不了或者上不了网的方法?
- SQL JOB信息查询
- 三星碉堡了:三星自家运用竟然没人用
- Maven基础3
- 如果我们是一股力量
- 嵌入式编程里的面向对象技术