返回该小组首页 回复主题
fisher_2006

fisher_2006

小组等级:     E币:169  (E币换礼)

#1楼主:求教:预处理程序中##和?是什么意思? [精华]

文章发表于:2008-09-28 09:54

在看WXL提供的T3实验程序时,看到如下代码,不知道##是什么意思?

#define TIMER34_INIT(timer)   \
   do {                       \
      T##timer##CTL   = 0x06; \
      T##timer##CCTL0 = 0x00; \
      T##timer##CC0   = 0x00; \
      T##timer##CCTL1 = 0x00; \
      T##timer##CC1   = 0x00; \
   } while (0)

还有下面这段程序是什么意思?里面的“?”是什么作用呢?

#define TIMER34_ENABLE_OVERFLOW_INT(timer,val) \
   (T##timer##CTL =  (val) ? T##timer##CTL | 0x08 : T##timer##CTL & ~0x08)
哪位知道,请帮忙解释一下,谢谢!

emot

   小组等级:    E币:1152  (E币换礼)

#2

文章发表于:2008-09-29 13:39

##timer## 表示用宏定义的数字代换,如timer=3,则上式为T3CTL=(val)?T3CTL|0X08:T3CTL&~0X08;

(a)?(b):(c)是三目运算符,并不是IAR特有的,a为真运算结果为b,反之为c。

zlf667788

   小组等级:    E币:445  (E币换礼)

#3

文章发表于:2008-10-06 21:29

问第一个问题可以接受, 问第二个问题应该打PP
不过二楼的帅哥比较有气度的, 都做了详细的回答, PF

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

所有小组精华文章