#define INIT_CLASS(classname) \
wyc_print("Init class: %s",#classname);\
extern CEventObject* __##classname##_create();\
CEventObject::GetObjectFactory().add(Str2UINT(#classname),uintptr_t(&__##classname##_create));\
extern int __##classname##_initialize_eventmap();\
__##classname##_initialize_eventmap();这段,看不太明白,换行需要\?为啥搞这么长呢?不懂,昏了。

解决方案 »

  1.   

    所以尽量不要使用宏替换机制,那是罪恶的根源,用模板函数来替换吧
      

  2.   

    就是因为长才用\
    \是将两行连接成一行
    因为一行太长写不下
    \后的空格会被忽略掉
      

  3.   

    宏确实不是什么好东东,用模版、内联机制好些,那种东西会把人看疯。
      

  4.   

    \就是续行符,为了表示这一行还未结束
      

  5.   

    这个表示继行,也就是表示上面那四行其实是一行
      

  6.   

    \的意思就是写成一行,因为宏的定义只能写在一行上。如果都写在一行上,就会比较长,影响可读性
      

  7.   

    \就是续行符,就是上面的四行是一行,想看明白必须理解上下文的意思才行。