首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:__asm__ (“some_code”:“cc”)语法错误

:__asm__ (“some_code”:“cc”)语法错误
EN

Stack Overflow用户
提问于 2013-10-29 20:38:14
回答 1查看 217关注 0票数 1

我使用C++作为项目,其中包含一个c头文件ira.h,如下所示:

代码语言:javascript
复制
#ifdef  __cplusplus
    extern "C" {
#endif

extern inline void disable_irqs() {
    __asm__ __volatile__("\torc  #0x80,ccr\n":::"cc");
}

extern inline void enable_irqs() {
    __asm__ __volatile__("\tandc #0x7f,ccr\n":::"cc");
}

#ifdef  __cplusplus
}
#endif

当我编译它的时候,我得到了如下错误:

代码语言:javascript
复制
/usr/local/bin/h8300-hitachi-hms-g++ -DCXX -fno-rtti -fno-exceptions -O2 -fno-builtin -fomit-frame-pointer -Wall -I/brickos/include -I/brickos/include/lnp -I. -I/brickos/boot  -c rcx1.C -o rcx1.o
In file included from PowerFunctionsController.H:32,
             from rcx1.H:27,
             from rcx1.C:21:
/brickos/include/lnp/sys/irq.h: In function `void disable_irqs(...)':
/brickos/include/lnp/sys/irq.h:99: parse error before `::'
/brickos/include/lnp/sys/irq.h: In function `void enable_irqs(...)':
/brickos/include/lnp/sys/irq.h:104: parse error before `::'
make: *** [rcx1.o] Error 1

我能做什么?

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 20:40:32

GCC将字符序列:::解析为两个操作符:作用域操作符::和冒号:。这是因为在解析关键字和运算符时,它会匹配最长的序列。如果您不想这样做,则需要在每个冒号之间添加一个空格,如: : :

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19658441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档