gpt4 book ai didi

C 预处理器 token 替换因解析错误而失败

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:49 26 4
gpt4 key购买 nike

我在我的 C 程序中定义了以下宏:

#define ISE1  "cust_add"
#define ISE2 "cust_sub"

#define ise_inst(inst, a, b, c) \
asm volatile (
" " inst " %1, %2, %0 \n\t" \
: "=r" (c) \
: "r" (a), "r" (b) \
: "%g0" \
)

在主例程中,我使用以下参数调用宏:

ise_inst(ISE1, inp1, inp2, res);

理想情况下,预处理器应该展开整个事情,以便我得到以下结果:

asm volatile (
" cust_add %1, %2, %0 \n\t"
: "=r" (res)
: "r" (inp1), "r" (inp2)
: "%g0"
);

有人知道我做错了什么吗?目前预处理器告诉我

error: parse error before string constant (@ line: " " inst " %1, %2, %0 \n\t" )

最佳答案

看起来您在 asm volatile( 行之后缺少一个 \ 行继续符。

关于C 预处理器 token 替换因解析错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4863951/

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