gpt4 book ai didi

C 宏 - 如何将整数值转换为字符串文字

转载 作者:太空狗 更新时间:2023-10-29 16:22:26 24 4
gpt4 key购买 nike

<分区>

是否有可能获取#defined integer 符号的值,逐字插入到作为 GCC (AVR Studio) 程序集部分一部分的字符串文字中?

我希望在下面的 asm() block 内的字符串文字中将“LEDS”替换为 48。

#define LEDS 48 //I only want ONE mention of this number in the source
int x = LEDS; //I'm using the value directly too

void DrawFrame()
{
asm(
"ldi R27, 0x00 \n\t"
"ldi R26, 0x00 \n\t"
"ldi R18, LEDS \n\t" //<-- substitution needed here
...
}

但我希望编译器/汇编器(在预处理器完成它的工作之后)看到这个...

#define LEDS 48 //I only want ONE mention of this number in the source
int x = LEDS; //I'm using the value directly too

void DrawFrame()
{
asm(
"ldi R27, 0x00 \n\t"
"ldi R26, 0x00 \n\t"
"ldi R18, 48 \n\t" //<-- substitution needed here
...
}

到目前为止,我已经尝试了所有我能想到的宏技巧(#stringification、arg 替换,甚至 #include 具有各种值和双引号组合的文件等等)。

我一点也不熟悉将 AVR 汇编代码内联到 AVR Studio 的 GCC 编译器中的魔力。

我试图避免在我的源代码中多次出现“48”文字,如果预处理器可以为我执行此替换,那就太好了。

编辑:这是一个微 Controller 固件项目 - 只是为了让生活变得有趣,几乎没有多余的空间来添加新代码。

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