打印

如何把宏定义做成全局的?

[复制链接]
7384|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
玄德|  楼主 | 2008-7-15 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2008-7-15 09:36 | 只看该作者

把宏放到.h文件中去定义,然后需要的时候include一下

使用特权

评论回复
板凳
snakeemail| | 2008-7-15 09:38 | 只看该作者

这样会include多次,编译器不会警告吗?

使用特权

评论回复
地板
玄德|  楼主 | 2008-7-15 09:40 | 只看该作者

多谢圈圈!

多谢圈圈!
哪个源程序要用到宏定义,就要包含一次,是这样吗?

使用特权

评论回复
5
computer00| | 2008-7-15 09:54 | 只看该作者

是的。你不会没用过像寄存器、IO口定义那些头文件吧?

其实那些头文件里大部分都是宏定义。

多个文件中引用,并不会出现警告或错误,因为宏定义是指对某个文件有效的。

如果在单个文件中多次引用,则可能会出现错误或警告,这时可以用#ifndef来控制下。

//先判断下__FileName_H__是否被定义了,没有定义时才能编译下面的代码
#ifndef __FileName_H__
#define __FileName_H__

//需要定义的宏在这里面写

#endif

使用特权

评论回复
6
玄德|  楼主 | 2008-7-15 09:55 | 只看该作者

没发现什么更好的方法

似乎只能象圈圈说的那样。
没有什么更好的方法。

使用特权

评论回复
7
computer00| | 2008-7-15 10:01 | 只看该作者

如果只有少量的宏,可以考虑在编译环境里面定义全局宏

全局宏通常在工程选项里的C语言选项里设置。

但是你这里有大量的宏,这样操作就不方便了,而且移植性不好,最好还是在头文件中定义。

使用特权

评论回复
8
renpingjun| | 2008-7-15 17:16 | 只看该作者

看看DSP 的BIOS里面的那么多宏定义

自己多看几个就学会了,为什么呢就需要问问查查了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

5921

帖子

44

粉丝