gpt4 book ai didi

c++ - 语法错误:__asm__ ("some_code":::"cc")

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:48 25 4
gpt4 key购买 nike

我的项目使用C++,包含一个c头文件ira.h如下:

#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

编译时出现如下错误:

/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

我能做什么?

最佳答案

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

关于c++ - 语法错误:__asm__ ("some_code":::"cc"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com