sdqdydj
驱动牛犊
驱动牛犊
  • 注册日期2005-03-12
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1375回复:4

如此define是什么意思

楼主#
更多 发布于:2005-03-16 15:56
使用串口类时,发现如下一段:
#define ON_WM_SERIAL(memberFxn) \\
ON_REGISTERED_MESSAGE(CSerialMFC::mg_nDefaultComMsg,memberFxn)

还有我在BEGIN_MESSAGE_MAP()后加了ON_WM_SERIAL(OnSerialMsg),
但是程序总收不到数据,不执行OnSerialMsg,发可以
sdqdydj
驱动牛犊
驱动牛犊
  • 注册日期2005-03-12
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-17 09:50
查到帮助说明如下:

宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上\"\\\"

有没有人更深刻的理解这句话,我实在愚钝。
kimliang
驱动牛犊
驱动牛犊
  • 注册日期2004-07-14
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望41点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-17 11:06
define做宏定义时只能把所有的定义语句写在同一行上。但是有时候宏定义可能会很长,为了阅读和理解的方便,我们通常希望能够把宏定义写在多行上,这时就要使用\"\\\"了。\"\\\"的作用是把两行连接到一起,也就是说虽然你把语句写在两行上,但是只要两行之间有\"\\\",那么编译器就会把这两行当成一行来处理。
你那个宏定义可以理解成时定义了一个函数:
ON_WM_SERIAL(memberFxn)
{
ON_REGISTERED_MESSAGE(CSerialMFC::mg_nDefaultComMsg,memberFxn);
}
不过宏定义自然是和函数有区别的。
KIM
chang_nicolas
驱动小牛
驱动小牛
  • 注册日期2004-08-26
  • 最后登录2007-03-29
  • 粉丝0
  • 关注0
  • 积分370分
  • 威望39点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-18 11:28
基本上是这个意思了,不过这样define定义和用函数的方法定义,有什么不同吗?请再执教一下
sdqdydj
驱动牛犊
驱动牛犊
  • 注册日期2005-03-12
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-21 08:21
那么memberfxn充当什么叫色呢?
游客

返回顶部