当前位置:编程学习 > C/C++ >>

宏名字和括号间不能有空格!

某日, 写了一个简单的内联汇编脚本, 死活编译不过去, 和原版的汇编一点一点对比, 基本上都一样了, 可就是别人写的可以编译过去, 我写的就是编译不过去.
汇编脚本如下:
[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++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,