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

[复制链接]
8347|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 | 显示全部楼层

多谢圈圈!

多谢圈圈!<br />哪个源程序要用到宏定义,就要包含一次,是这样吗?
computer00 发表于 2008-7-15 09:54 | 显示全部楼层

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

其实那些头文件里大部分都是宏定义。<br /><br />多个文件中引用,并不会出现警告或错误,因为宏定义是指对某个文件有效的。<br /><br />如果在单个文件中多次引用,则可能会出现错误或警告,这时可以用#ifndef来控制下。<br /><br />//先判断下__FileName_H__是否被定义了,没有定义时才能编译下面的代码<br />#ifndef&nbsp;__FileName_H__<br />#define&nbsp;__FileName_H__<br /><br />//需要定义的宏在这里面写<br /><br />#endif
 楼主| 玄德 发表于 2008-7-15 09:55 | 显示全部楼层

没发现什么更好的方法

似乎只能象圈圈说的那样。<br />没有什么更好的方法。<br />
computer00 发表于 2008-7-15 10:01 | 显示全部楼层

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

全局宏通常在工程选项里的C语言选项里设置。<br /><br />但是你这里有大量的宏,这样操作就不方便了,而且移植性不好,最好还是在头文件中定义。
renpingjun 发表于 2008-7-15 17:16 | 显示全部楼层

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

自己多看几个就学会了,为什么呢就需要问问查查了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

154

主题

5985

帖子

44

粉丝
快速回复 在线客服 返回列表 返回顶部