读书人

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

发布时间: 2013-11-29 00:21:24 作者: rapoo

下面这个宏定义的错误在哪里
编译器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行)
请问原因何在

读书人网 >C语言

热点推荐