当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : #include命令不能重叠吗?
帖子发表于 : 2012-03-29 20:07 
头像

注册: 2012-03-17 11:05
帖子: 138
送出感谢: 3
接收感谢: 0 次
我试了一下,不管是标准链接库还是自己定义的.h文件,多次include是没有任何问题的。为什么书上说还要用条件编译(#ifndef #define)?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-03-29 20:09 
头像

注册: 2009-05-08 14:18
帖子: 3332
地址: 河南新乡
系统: Arch
送出感谢: 19
接收感谢: 10
不了解


_________________
Linux 相关链接大杂烩
代码:
if(read) {
    if(practise) return g☘☘d;
    else return w☘☘d;
} else {
    return t☘☘d;
}


页首
 用户资料  
 
3 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-03-29 20:11 
头像

注册: 2008-12-06 10:38
帖子: 4570
系统: Arch
送出感谢: 23
接收感谢: 31
这东西跟include有什么关系么?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-03-29 20:33 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
当然要避免。当然应该if判断。
有些定义会导致问题的,尤其分步编译的情况,多人合作的情况。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-03-29 20:49 

注册: 2011-06-27 0:57
帖子: 190
送出感谢: 7
接收感谢: 2
实际上是有问题的。条件编译就是帮你避免了问题。

记得有这么一种情况,有头文件b c,源文件a
b引用c
a引用b和c

没有条件编译,好像就会出错


_________________
我的github: https://github.com/fy0


页首
 用户资料  
 
6 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-03-30 14:06 
头像

注册: 2012-03-17 11:05
帖子: 138
送出感谢: 3
接收感谢: 0 次
eexpress 写道:
当然要避免。当然应该if判断。
有些定义会导致问题的,尤其分步编译的情况,多人合作的情况。

那为什么stdio.h被include两次没有问题啊?实际上.h文件是一些变量和函数的声明,而声明多次是可以编译通过的。。。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-04-02 22:49 

注册: 2007-02-05 18:09
帖子: 323
送出感谢: 1
接收感谢: 1
typedef好像不能定义两次。
再说你怎么知道stdio.h没有用#ifdef?


页首
 用户资料  
 
8 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-04-02 22:57 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
#ifdef防重复include是头文件用的,不是代码需要考虑的。

你可以看看系统的头文件(比如 /usr/include/stdio.h ),都已经带有防重复include了。


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
9 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-04-02 23:20 
头像

注册: 2011-08-17 12:54
帖子: 287
送出感谢: 0 次
接收感谢: 4
我的认识:
一.出于效率考虑,要是代码量特别大,同一源文件里多次包含同一个头文件会减慢编译速度
二.防止出现递归包含
三.防止多次包含出现类型重定义的问题


页首
 用户资料  
 
10 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-04-03 0:21 
头像

注册: 2012-03-17 11:05
帖子: 138
送出感谢: 3
接收感谢: 0 次
啊,谢谢你们了。。。。 :em03 :em03 :em03


页首
 用户资料  
 
11 楼 
 文章标题 : Re: #include命令不能重叠吗?
帖子发表于 : 2012-04-08 22:37 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: [email protected]
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
billcalendar 写道:
eexpress 写道:
当然要避免。当然应该if判断。
有些定义会导致问题的,尤其分步编译的情况,多人合作的情况。

那为什么stdio.h被include两次没有问题啊?实际上.h文件是一些变量和函数的声明,而声明多次是可以编译通过的。。。

抛开编译速度不说。稍微使用点的项目,其头文件往往还有结构体和类型定义。定义显然是不可重复的!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译