阅读:1375回复:4
如此define是什么意思
使用串口类时,发现如下一段:
#define ON_WM_SERIAL(memberFxn) \\ ON_REGISTERED_MESSAGE(CSerialMFC::mg_nDefaultComMsg,memberFxn) 还有我在BEGIN_MESSAGE_MAP()后加了ON_WM_SERIAL(OnSerialMsg), 但是程序总收不到数据,不执行OnSerialMsg,发可以 |
|
沙发#
发布于:2005-03-17 09:50
查到帮助说明如下:
宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上\"\\\" 有没有人更深刻的理解这句话,我实在愚钝。 |
|
板凳#
发布于:2005-03-17 11:06
define做宏定义时只能把所有的定义语句写在同一行上。但是有时候宏定义可能会很长,为了阅读和理解的方便,我们通常希望能够把宏定义写在多行上,这时就要使用\"\\\"了。\"\\\"的作用是把两行连接到一起,也就是说虽然你把语句写在两行上,但是只要两行之间有\"\\\",那么编译器就会把这两行当成一行来处理。
你那个宏定义可以理解成时定义了一个函数: ON_WM_SERIAL(memberFxn) { ON_REGISTERED_MESSAGE(CSerialMFC::mg_nDefaultComMsg,memberFxn); } 不过宏定义自然是和函数有区别的。 |
|
|
地板#
发布于:2005-03-18 11:28
基本上是这个意思了,不过这样define定义和用函数的方法定义,有什么不同吗?请再执教一下
|
|
地下室#
发布于:2005-03-21 08:21
那么memberfxn充当什么叫色呢?
|
|