Chinaunix首页 | 论坛 | 博客
  • 博客访问: 111066
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 636
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-22 19:31
文章分类

全部博文(87)

文章存档

2015年(33)

2014年(37)

2013年(17)

我的朋友

分类: C/C++

2015-04-14 15:29:00

http://blog.csdn.net/fushiqianxun/article/details/7968525

1、如果头文件A包含头文件C,同时头文件B也包含头文件C,而写的程序中包含了头文件A,头文件B,然后在编译的时候就会出现头文件C重复包含的错误
这个错误 只要在自己写的头文件中这样写
  1. #ifndef X   //X为你的标识符,保持唯一,可以长点,比如 #ifndef _INCLUDE_XXXXXX_H_  
  2. #define X  
  3.   
  4. //这里是你的头文件  
  5.   
  6. #endif  
上面的X可以随便取名(可以用来“装”头文件,所以X一般取名为大写的头文件的名字,只不过把"."换成“_”),只要保证#ifndef和#define后面是同一个X就可以了,只是一个标识而已。翻译成中文就是,如果已经#define X了,后面的就不执行了。这样在同一个c文件中,保证可以只#include一个头文件,避免“在同一个c文件中对一个头文件include两次”的错误(第一次包含了该头文件后,就已经#define 了一次X,第二次包含时会遇到“#ifndef X”的判断,既然已经定义,只好对这个判断说yes了,后面的不再执行, 头文件就不会再加进去)。 2、写的代码里, 头文件A需要包含头文件B,头文件B需要包含头文件C,这种情况#include A就没有问题,不会出现重复包含的错误 注意:这里的#ifndef预处理是要解决在同一个c文件中包含了两次同一个头文件的错误,而在不同的c文件中是可以包含同一个头文件的。


如果不用#ifndef来对头文件做标记,又想“一劳永逸”地解决问题,不需要担心重复包含,则就要形成自觉,不要在头文件里定义变量或函数,只声明,这样多次include这个头文件时包含的都是声明,就没有问题,因此c语言里是允许多次声明同一个函数或变量的。

阅读(1094) | 评论(0) | 转发(0) |
0

上一篇:使用filezlla连接linux

下一篇:预处理

给主人留下些什么吧!~~