|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ #include ABCD_EFG 注意:不是包含任何头文件
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
907
人关注过本帖
标题:
#include ABCD_EFG 注意:不是包含任何头文件
只看楼主
加入收藏
melody_rain
等 级:
论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
结帖率:
80%
楼主
收藏
已结贴
√
问题点数:20 回复次数:11
#include ABCD_EFG 注意:不是包含任何头文件
#include ABCD_EFG 不是#include "ABCD_EFG",也不是#include <ABCD_EFG>
ABCD_EFG是一个宏,那么#include ABCD_EFG在编译的过程中有什么作用?
thx~
搜索更多相关主题的帖子:
include
2012-08-07 09:55
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
2
楼
收藏
得分:0
就是替换成那个宏的内容呗。如果那个宏既不是 "xxx" 也不是 <xxx> 恐怕就要出问题。
没有见过用这种技术的。如果根据不同的条件要包的头文件在不同,一般就是用条件编译。
很想像头文件的名字是不确定的,要用变量或者宏来指示。即使是自动生成的头文件,往往也是提前指定一个固定的名字,或者是有严格规律的名字,以方便自动生成代码。
2012-08-07 10:51
举报帖子
使用道具
赠送鲜花
melody_rain
等 级:
论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
第
3
楼
收藏
得分:0
回复 2楼 pangding
#include ABCD_EFG这种形式的真实存在的
我看的工程里有这个形式。而ABCD_EFG是定义在makefile里的。网上查到这个是#include的一个用法,不过我还是不明白这样做法的用处...
2012-08-07 11:12
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
4
楼
收藏
得分:0
定义在 makefile 里是有可能的。目的应该也是为了能自动生成代码。
makefile 可以控制很复杂的逻辑,也许是开发者没有想到用宏替换的其它方法。或者是其它方法不够简便。
我没有见过这样的实例,一时也很难解释为什么要这么写。你那个 makefile 长不长?不长的话也许可以传上来看一眼。
2012-08-07 15:45
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
5
楼
收藏
得分:0
编译时加个输出预处理后文件的参数,看看预处理之后那是什么。在makefile的指令中,一定有一条DEFINE指令是定义这个宏的,想在make的时候临时指定包含文件而已。
[
本帖最后由 TonyDeng 于 2012-8-7 16:35 编辑
]
授人以渔,不授人以鱼。
2012-08-07 16:17
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
6
楼
收藏
得分:0
那串字母标识符一定是字符串文本,printf()一下也应该看到是什么东西,除非你连编译都不过。
授人以渔,不授人以鱼。
2012-08-07 16:18
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
7
楼
收藏
得分:0
回复 6楼 TonyDeng
楼主可能知道那个宏的内容是什么,我觉得他只是想知道为什么要写成那样。有什么特殊目的。
2012-08-07 21:02
举报帖子
使用道具
赠送鲜花
melody_rain
等 级:
论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
第
8
楼
收藏
得分:0
以下是引用
pangding
在2012-8-7 21:02:36的发言:
楼主可能知道那个宏的内容是什么,我觉得他只是想知道为什么要写成那样。有什么特殊目的。
那个宏在makefile里貌似只是起到一个编译开关作用,makefile里可以定义通过开启关闭这个宏来在编译的时候产生一些效果。
但是用#include ABCD_EFG,我就不懂它到底想做什么。ABCD_EFG并不代表一个.h文件,那么这样做能有什么结果?挺奇怪了...
2012-08-08 09:20
举报帖子
使用道具
赠送鲜花
melody_rain
等 级:
论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
第
9
楼
收藏
得分:0
btw,这个makefile不方便上传,不好意思~
2012-08-08 09:21
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
10
楼
收藏
得分:0
那个宏扩展之后是什么内容?
2012-08-08 09:52
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
#include ABCD_EFG 注意:不是包含任何头文件
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.034352 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved