为什么这样能够防止头文件重复调用?
来源:互联网 发布:淘宝产品视频制作价格 编辑:程序博客网 时间:2024/05/16 17:21
一些资料上说在头文件加上类似下面的语句就能防止头文件重复调用:
#ifndef _TEST_H_
#define _TEST_H_
…… //头文件内容
#endif
不是很明白,按照我的理解,如果之前没有定义过“_TEST_H_”,如上的条件编译会让整个头文件失效。另外头文件什么情况下会被重复调用,有什么后果?
第一次调用,没定义过_TEST_H_,就会定义_TEST_H_ 然后头文件被调用
如果还有调用,_TEST_H_已被第一次定义,自动就跳过了
假设头文件被重复调用,会对系统有什么样的影响?
有两个影响:
1. 在此头文件中的变量或者宏定义会被重复定义(有时导致编译出错)
2. 影响编译预处理速度
如果头文件被重复引用多导致很多宏定义被重复定义#define
比如,有一个头文件为 test.h
其中有一个宏定义 #define TEST_MACRO 0x1234
如果另一个头文件 test1.h和test2.h都包含了test.h
而test1.h和test2.h又同时在一个.c文件中使用,那么就会有重复调用的情况,就会对test.h文件进行多次展开,影响预处理的效率(多预处理了一次test.h)
点击打开链接 http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html (详细的介绍)
0 0
- 为什么这样能够防止头文件重复调用?
- 为什么c程序头文件中加#ifdef可以防止重复调用?
- 防止头文件重复包含
- 防止头文件重复引用
- 防止头文件重复编译
- 防止重复包含头文件
- 防止头文件重复引用
- 防止头文件重复包含
- 防止头文件重复包含
- 防止头文件重复引入
- 防止头文件重复包含
- 如何防止头文件被重复引用?
- 防止重复包含头文件的问题
- 头文件防止变量被重复定义
- 如何防止头文件被重复包含
- C++头文件防止重复包含
- 防止头文件被重复引用
- #ifndef#endif防止头文件重复包含
- javascript eval和JSON之间的联系
- 专注
- extern "C"的用法解析
- Java虚拟机学习摘要
- 手把手教你使用start uml画类图
- 为什么这样能够防止头文件重复调用?
- Linux内核分析(三)内核启动过程分析——构造一个简单的Linux系统
- "Shortest" pair of paths - POJ 3068 费用流
- Android进程与线程基本知识
- 数据结构学习第二课2
- HTML第九节(css样式基本知识)
- php优化技巧
- 每个Java程序员必须知道的5个JVM命令行标志
- UIView 中与动画相关的各函数 详介