define语句定义的那个怎么解释,谢谢了!#define DEFINE_MESSAGE_MACRO(funcname, libname) \
static inline void funcname (int loglevel, const char *fmt, ...) \
{ \
va_list ap; \
va_start(ap, fmt); \
player_library_message(loglevel, libname, fmt, ap); \
va_end(ap); \

解决方案 »

  1.   

    \ 的意思就是下面一行是接着这行的,比如abcdefg\
    hahaha就是 abcdefghahaha
      

  2.   

    因为 #define 是必须写在一行的,所以用了 \ 。把 \  去掉的话就是这样的 :#define DEFINE_MESSAGE_MACRO(funcname, libname) static inline void funcname (int loglevel, const char *fmt, ...) {  va_list ap;  va_start(ap, fmt); 
    player_library_message(loglevel, libname, fmt, ap); 
    va_end(ap); 
    }
      

  3.   

    谢谢诸位捧场!
    这个问题懂了^_^
    但是还有点困惑,请一并执教,我马上给帖子加分:
    1。我感觉#define  DEFINE_MESSAGE_MACRO(funcname,  libname) 定义的应该是一个函数,括号里面的是参数。怎么到后面funcname却成了函数名?
    2。函数名里面可以出现省略号??这段程序编译运行都不报错,但怎么看怎么别扭
      

  4.   

    #define所作的是简单的文本替换,所以函数也可以照样处理,况且函数指针也可以作为参数传递。
    省略号是一种参数列表的用法,可以看看msdn
      

  5.   

    ... 的意思就是参数个数不确定CString 的 Format 函数就是这样。