首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

语句定义之凝问????

语句定义之凝问????

以下的定义是飞思卡尔的原文件里的,但是由于C语言学的不精通.

所以请老师们指点一下,这是什么意思???

#define setReg8Bit(RegName, BitName) (RegName |= RegName##_##BitName##_##MASK)
#define clrReg8Bit(RegName, BitName) (RegName &= ~RegName##_##BitName##_##MASK)
#define invertReg8Bit(RegName, BitName) (RegName ^= RegName##_##BitName##_##MASK)
#define testReg8Bit(RegName, BitName) (RegName & RegName##_##BitName##_##MASK)

/* Whole peripheral register access macros */
#define setReg8(RegName, val) (RegName = (byte)(val))
#define getReg8(RegName) (RegName)

(void)SPI1S; /* Read the status register */
(void)SPI1D; /* Read the device register */

尤其是 ##_## 是什么意思啊???

请参看这个帖子:

http://bbs.eccn.com/ecbbs/dispbbs.asp?BoardID=3&replyID=448413&ID=86187&skin=1

海纳百川  有容乃大
谢谢您,我去看一看.

##_##就表示用下划线“_”。

这个我看了你的回答,我明白了.

那以下是什么呢??

/* Whole peripheral register access macros */
#define setReg8(RegName, val) (RegName = (byte)(val))
#define getReg8(RegName) (RegName)

为什么说是中断寄存器的宏啊??????

不是中断寄存器的宏,就是对寄存器进行读写操作的宏。
海纳百川  有容乃大
谢谢老师指点,我明白了.
返回列表