大家帮我看看这个程序里‘##’是什么意思

[复制链接]
 楼主| xiaohui408x 发表于 2011-7-18 20:43 | 显示全部楼层 |阅读模式
#define OUP_(n,dir)  (io_ctrl_m##n = dir)
#define OUP(n,dir)  OUP_(n,dir)
#define INP(n)   (io_ctrl_feedback##n)
#define LED_(n, s) (led##n = s)
#define LED(n, onoff) (LED_(n, LED_##onoff))

我写程序很挫,看不太明白这里面‘##’的意思
bbqqbbqqbbq 发表于 2011-7-18 21:07 | 显示全部楼层
:L这个是定义的语法。。。。。

C语言规定的。。。。
EMV_PBOC 发表于 2011-7-18 21:32 | 显示全部楼层
没搞明白,楼上能细说一下吗?
johnwjl 发表于 2011-7-18 21:42 | 显示全部楼层
把宏参数作为字符串连接,举个例子
OUP_(1, 0) ; // 宏替换后变为: io_ctrl_m1 = 0;
ayb_ice 发表于 2011-7-19 08:39 | 显示全部楼层
这是C的预处理,合并作用
yewuyi 发表于 2011-7-19 09:12 | 显示全部楼层
字符串连接,否则你就需要把n展开写很多个宏。
 楼主| xiaohui408x 发表于 2011-7-19 09:31 | 显示全部楼层
http://bbs.51cto.com/thread-480422-1-1.html

这篇**里有专门介绍C语言预处理命令的知识,非常基础的,

大家共同学习吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

55

帖子

1

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