gpt4 book ai didi

c - 字符串内的 GCC 宏扩展参数

转载 作者:太空狗 更新时间:2023-10-29 17:20:08 24 4
gpt4 key购买 nike

我有这样的情况

#define PRE 0xF1

#define SR0 0B0000
#define SR1 0B0001
#define SR2 0B0010
#define SR3 0B0011

#define VIOTA(A0) asm(".byte PRE, A0")

int main()
{
VIOTA(SR1);
return 0;
}

我有一个扩展的顶级宏,但扩展包含更多宏。这些没有被扩展并导致一些问题。

我想要的行为是结束扩展是

asm(".byte 0xF1, 0B0000")

这里扩展了内部宏。我真的不确定我做错了什么。有什么建议吗?

最佳答案

#define S(x) #x
#define SX(x) S(x)

#define VIOTA(A0) asm(".byte " SX(PRE) ", " SX(A0))

在此处查看详细信息:C Preprocessor, Stringify the result of a macro

关于c - 字符串内的 GCC 宏扩展参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686675/

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