下面这个宏定义的异常在哪里

下面这个宏定义的错误在哪里编译器VS2008,操作系统xp这个宏这么写编译可以(把整个宏定义写在一行里)#defin

下面这个宏定义的错误在哪里
编译器VS2008,操作系统xp
这个宏这么写编译可以(把整个宏定义写在一行里)


#define compab_mask(val,shift) { value |= ((unsigned int)(*center - (val) - 1) & 0x80000000) >> (31-shift); }

但是我只是整理了一下格式,就不对了

#define compab_mask(val,shift)    \ 
{     \
    value |= ((unsigned int)(*center - (val) - 1) & 0x80000000) >> (31-shift);    \ 
}

报的错误如下:
error C2449: found '{' at file scope (missing function header?)(对于那个错误的宏的第2行)
error C2017: illegal escape (对应错误的宏定义的第3行)
error C2059: syntax error : '}'(对应错误宏定义的第4行)
请问原因何在


[解决办法]
续行符\后面不能有空格。

引用:
编译器VS2008,操作系统xp
这个宏这么写编译可以(把整个宏定义写在一行里)

#define compab_mask(val,shift) { value 
[解决办法]
= ((unsigned int)(*center - (val) - 1) & 0x80000000) >> (31-shift); }

但是我只是整理了一下格式,就不对了

#define compab_mask(val,shift)    \ 
{     \
    value 
[解决办法]
= ((unsigned int)(*center - (val) - 1) & 0x80000000) >> (31-shift);    \ 
}

报的错误如下:
error C2449: found '{' at file scope (missing function header?)(对于那个错误的宏的第2行)
error C2017: illegal escape (对应错误的宏定义的第3行)
error C2059: syntax error : '}'(对应错误宏定义的第4行)
请问原因何在