#ifndef........#define........#endif
来源:互联网 发布:数据库题库 编辑:程序博客网 时间:2024/04/30 03:38
是预处理功能中三种(宏定义,文件包含和条件编译)中的第三种----条件编译
假如你有一个C源文件,它包含了多个头文件,比如头文件A和头文件B,而头文件B又包含了头文件A,则最终的效果是,该源文件包含了两次头文件A。如果你在头文件A里定义了结构体或者类类型(这是最常见的情况),那么问题来了,编译时会报大量的重复定义错误。
例如要编写头文件test.h
在头文件开头写上两行:
#ifndef _TEST_H
#define _TEST_H//一般是文件名的大写 头文件结尾写上一行:
#endif
这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。
分析:
当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和
#endif之间的代码,当第二次包含test.h时前面一次已经定义了_TEST_H,条件为假,#ifndef _TEST_H和
#endif之间的代码也就不会再次被包含,这样就避免了重定义了.
还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:
#ifndef <标识>
#define <标识>
......
......
#endif
<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前面加下划线(这个一定要记住,不然会有问题),并把文件名中的“.”也变成下划线,如:stdio.h
#ifndef _STDIO_H
#define _STDIO_H
......
#endif
0 0
- #ifndef、#define、#endif
- #ifndef/#define/#endif 小结
- #ifndef #define #endif用法
- 有关#ifndef #define #endif
- #ifndef,#define #endif作用
- #ifndef#define#endif用法
- #ifndef #define #endif
- #define #ifndef #endif
- ifndef/define/endif
- #ifndef /#define/#endif
- #ifndef、#define、#endif
- #ifndef#define#endif
- #ifndef, #define, #endif 作用
- ifndef define endif
- #ifndef #define #endif作用
- #ifndef, #define, #endif 作用
- #ifndef #define #endif
- ifndef/define/endif
- 表达式(x<y)将被判定为bool值ture或false
- 前端学习(20160927-1015)
- Julia: rand
- CentOS 7 Nginx 控制脚本
- Json与XML解析的区别比较
- #ifndef........#define........#endif
- hunterliy小作品之 HunterMusic音乐播放器(Day2-后台播放服务实现)
- 【codevs 4716】破损的键盘2
- 如何在XML设定android控件的颜色(十六进制颜色码)
- 谷歌电子市场第2天
- 自学-jq篇-ajax方法
- cgi错误集锦
- 本地存储密码的安全设计
- OGL选择和反馈模式