#ifndef #define #endif用法
2016-02-25 14:42
330 查看
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。
方法:例如要编写头文件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之间的代码也就不会再次被包含,这样就避免了重定义了。主要用于防止重复定义宏和重复包含头文件
_TEST_H一般为当前路径,即可保证独一无二。
方法:例如要编写头文件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之间的代码也就不会再次被包含,这样就避免了重定义了。主要用于防止重复定义宏和重复包含头文件
_TEST_H一般为当前路径,即可保证独一无二。
相关文章推荐
- 当 ITOA 遇上 OneAlert,企业可以至少每年节省 3600 小时!
- ZSC 1155 ZQU_ACM 协会 (并查集入门)
- 基于javascript实现动态时钟效果
- 字符串匹配
- javascript客户端保存cookie实现记住密码功能
- 汇编跳转指令总结
- [UVA202]Repeating Decimals
- 如何在同一台服务器上安装sql server2000和2005
- ANR定位
- JS正则表达式详解
- 移动端左右滑动代码
- XSS漏洞
- 数组元素删除与排序
- 李航博士:浅谈我对机器学习的理解
- 当 ITOA 遇上 OneAlert,企业可以至少每年节省 3600 小时!
- iOS开发 - "Cast from pointer to smaller type 'int' loses information” 解决办法
- mybatis之高级查询
- 【Android效果集】学习ExplosionField之粒子破碎效果
- ftp服务器的安装
- linux的whoami, who指令