- 浏览: 18370 次
文章分类
最新评论
#ifndef XXXX_H
#define XXXX_H
......
#endif
以上代码是一个宏,俗称保护头,作用:防止头文件的重复包含。
每一个.h头文件定义时,都应该加上这么一个宏,来防止文件的重复包含。
举例:
写application.h头文件的时候,加上#ifndef ......:
#ifndef APPLICATION_H
#define APPLICATION_H
#include "ns3/ptr.h"
#include "ns3/node.h"
#... ...
...
#endif
写application.cc文件时:
#include "application.h"
#include "ns3/ptr.h"
#... ...
......
这样因为application.h里面包含了ns3/ptr.h,ns3/ptr.h也加了保护头,所以当application.cc文件再次包含ns3/ptr.h的时候,就#ifndef不成立了,不执行define后面的内容了,这样就防止了重复包含。
发表评论
-
sizeof()
2013-01-09 09:21 683在写程序的时候遇到了如何求字符串占多少长度的内存空间问题。先看 ... -
c/c++语言好坏pk的两篇文章
2012-12-21 22:30 0http://simpleprogrammer.com/201 ... -
hash算法常备链接
2012-12-21 16:13 629在这里总结几个常用的hash函数出来,留备后续用到时候方 ... -
在写哈弗曼算法的时候遇到的一篇好博客
2012-12-17 21:27 0在自己编写哈弗曼算法的时候,遇到了这篇文章。意外的发现,哈弗曼 ... -
strcpy()/memcpy()
2013-01-04 17:08 864陆陆续续总结几个常用函数的原型出来,为以后再看到时查阅的方便。 ... -
初写c++程序
2012-12-08 20:33 0几乎是第一次完整的写一个c++的程序,真所谓不写不知道,一写吓 ... -
汉诺塔问题
2012-11-20 22:46 757原文出处:http://zh.wikipedia.org/wi ... -
迷宫求解算法
2012-11-20 21:05 970原文出处: http://blog.csdn.net/ ... -
vector list deque 三者间的比较
2012-11-16 21:54 687http://blog.csdn.net/ianleelj/a ... -
双端队列deque (非原创)
2012-11-16 21:44 743http://hi.baidu.com/xuehuo_0411 ... -
malloc函数/强制类型转换/单链表案例/
2012-10-11 19:59 9911.malloc()函数的函数原型如下: void *ma ... -
assert 断言
2012-09-17 20:22 618assert宏的原型定义在<assert.h>中, ... -
C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组(2)
2012-07-04 21:14 893//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换 ... -
C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组(1)
2012-07-04 20:33 1279fstream提供了三个类,用来实现c++对文件的操作。(文件 ...
相关推荐
### 防止变量重复定义、头文件重复包含、嵌套包含 #### 一、问题背景与重要性 在软件开发过程中,特别是大型项目中,经常需要管理大量的源文件和头文件。这些文件之间可能存在相互依赖关系,如果不妥善管理,很...
防止变量重复定义、头文件重复包含、嵌套包含 在软件开发过程中,变量重复定义、头文件重复包含、嵌套包含是常见的问题,这些问题可能会导致编译错误、链接错误,甚至程序崩溃。为了解决这些问题,我们需要了解它们...
防止变量重复定义头文件重复包含嵌套包含 防止变量重复定义头文件重复包含嵌套包含是编程中的一种常见错误。头文件可能会被多次包含,导致变量重复定义的问题。这种问题经常出现在大型程序中,需要使用很多头文件时...
值得注意的是,虽然`#pragma once`在多数情况下能有效防止头文件重复包含,但`#ifndef`...`#endif`(include guard)方法更具有移植性,因为它适用于所有遵循C/C++标准的编译器。 在实际项目中,我们还可以采用其他...
当需要使用类的成员函数或模板时,我们必须包含完整的类定义,这就需要用到`#ifndef`预处理器指令或者`#pragma once`防止头文件重复包含。`#ifndef`宏检查某个标识符是否已被定义,如果没有,则执行该宏下的代码并...
6. **防止头文件重复包含** 为了避免头文件被多次包含导致的错误,通常会使用`#ifndef`、`#define`和`#endif`来创建条件编译块,确保头文件只被包含一次。这种技术称为头文件保护。 7. **头文件的使用技巧** - ...
当两个或多个类相互依赖,即一个类的定义中需要另一个类的信息时,就会出现头文件互相包含的问题,这可能导致编译错误或不必要的重复编译,影响开发效率。 #### 问题描述 假设我们有两个类`A`和`B`,它们分别在...
如果头文件已经被包含过,编译器会跳过该文件,防止重复定义。 - **包含自身(self-inclusion)**:有些情况下,一个头文件可能需要包含自身。这时,需要使用包含保护防止无限递归。 3. 头文件组织: - **模块化...
这种防止头文件重复包含的方法称为“头文件保护”或“包含保护”。除了`ifndef`、`define`、`endif`组合外,还有其他形式,如`#pragma once`,这是微软Visual Studio编译器支持的一个非标准但广泛使用的特性,它也有...
在C++编程中,头文件重复包含是一个常见的问题。当不同的类分别定义在不同的头文件中时,如果这些类之间存在相互引用的情况,就可能会导致逻辑错误或编译错误。 **问题描述**: 考虑有两个类`A`和`B`,它们分别...
例如,`#ifndef __INTRINS_H__`和`#define __INTRINS_H__`确保`intrins.h`只在首次包含时被处理,之后的包含则会被忽略,这是C/C++中防止头文件重复包含的常见做法。 此外,`intrins.h`还可能包含其他特定编译器的...
### 防止头文件重复包含的技术解析 在C++编程中,经常需要使用到头文件来声明类、函数或宏等。为了确保程序的稳定性和可读性,避免重复定义的问题,通常会采取措施来防止同一个头文件被多次包含。在给定的文件...
避免重复包含:为了避免同一个头文件被多次包含,通常会在头文件的开头和结尾使用预处理器指令来防止重复包含 编译程序:最后,使用C++编译器编译你的程序。编译器会处理所有的#include指令,并将包含的头文件内容...
头文件的避免重复包含问题是指头文件被重复引用时,可能会导致程序出错或编译失败的问题。为了避免头文件被重复引用,需要使用 ifndef/define/endif 结构产生预处理块,以避免头文件被重复引用。 头文件是 C++/C ...
一般情况下,我们都是把函数声明、类定义、模板定义等写到一个头文件里,需要时将相应的...但头文件中又允许包含其它的头文件,这样就难免发生某个头文件被重复地包含。我们可以使用编译预处理命令避免这种情况的发生。
3. **预处理指令**:使用`#include`指令来引入其他头文件,`#ifndef`、`#define`和`#endif`等指令用于避免重复包含。 #### 二、手动检查 最直接的方法就是手动检查头文件中的`#include`指令,确认它们是否包含了...
- **避免循环包含**:使用`#ifndef`、`#define`、`#endif`防止头文件被重复包含,这可能导致编译错误。 - **使用头文件守护者(Header Guards)**:每个头文件都应有自己的唯一标识符,如`#ifndef HEADER_H_`,以...
这种方法被称为“Include Guard”,是防止头文件重复包含的一种常用手段。通过这种方式,即使同一个头文件被多个源文件或另一个头文件包含多次,也只会被实际编译一次。 #### 深入理解 `extern "C"` 在C++中,`...
当多个源文件需要共享相同的定义时,使用头文件可以避免重复定义,提高代码的复用性和可维护性。在Keil MDK中,如果不正确地设置头文件的路径,可能导致编译器无法找到相应的头文件,从而引发编译错误。 ### 2. ...
头文件还可以通过`#pragma once`指令来防止重复包含,这在某些编译器中是有效的,但不是标准C++的一部分,因此并非所有编译器都支持。 总结起来,C++中的头文件是程序结构的重要组成部分,它们帮助组织代码,提供...