宏名字和括号间不能有空格!
某日, 写了一个简单的内联汇编脚本, 死活编译不过去, 和原版的汇编一点一点对比, 基本上都一样了, 可就是别人写的可以编译过去, 我写的就是编译不过去.
汇编脚本如下:
[cpp]
#undef BYTE_COPY_FWD
#define BYTE_COPY_FWD (dst, src, len) \
do { \
asm volatile( \
"cld\n" \
"rep\n" \
"movsb" : \
"=D" (dst), "=S" (src) : \
"0" (dst), "1" (src), "c" (len) : \
"memory"); \
} while(0)
只好祭出beyond compare2
发现有如下不一致的地方:
第一行是别人的, 第二行是我的
发现宏名字和()之间多了一个空格, 去掉之, 编译通过!
之前的报错信息如下, 希望这里的报错信息对你有用.
memcpy.cpp:40: warning: left-hand operand of comma has no effect
memcpy.cpp:40: warning: right-hand operand of comma has no effect
memcpy.cpp:40: error: expected `;' before ‘do’
补充:软件开发 , C++ ,