一个基本的C语言问题

[复制链接]
2894|1
 楼主| yannyksr 发表于 2007-5-30 08:31 | 显示全部楼层 |阅读模式
我发现csl_mcasphal.h里面有这样一个现象,:<br />&nbsp;&nbsp;#define&nbsp;MCASP_RGETH(h,REG)<br />&nbsp;&nbsp;&nbsp;&nbsp;MCASP_RGETA(MCASP_ADDRH(h,##REG),##REG)<br />&nbsp;&nbsp;#define&nbsp;MCASP_RGETA(addr,REG)<br />&nbsp;&nbsp;&nbsp;&nbsp;_PER_RGET(addr,MCASP,##REG)<br />&nbsp;&nbsp;#define&nbsp;_PER_RGET(addr,PER,REG)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;Uint32*)(addr))<br />请问:<br />1。为什么要把A定义成B又把B定义成C,直接定义成C不得了,要不然编译的时候直接替换掉以后中间那个岂不是没有意义吗?<br />2.在&nbsp;&nbsp;#define&nbsp;_PER_RGET(addr,PER,REG)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;Uint32*)(addr))里面,前者是三个参数,后者是变成取地址了,一个参数,那PER和REG岂不是没有任何作用?<br />好像是C语言的基本问题,有人能帮我解释一下吗?不胜感激!
dreambird 发表于 2007-5-30 12:55 | 显示全部楼层

re

<br />写程序有一个要求就是方便阅读,这样维护起来简单,尽管有些对于编译器来说是没用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

10

帖子

0

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