gpt4 book ai didi

c - 是否存在使用编译器指令宏的 itoa 替代方案

转载 作者:行者123 更新时间:2023-11-30 19:54:50 27 4
gpt4 key购买 nike

我想知道是否有一种方法可以使用字符串化编译器指令来字符串化整数变量。我尝试使用:

#define stringize(a) #a
#define h(a) stringize(a)
#define g(a,b) a##b
#define f(a,b) g(a,b)

int main()
{
int num = 1024;
printf("%s=%s\n",stringize(h(f(1,2))), h(f(1,2))); //1. h(f(1,2))=12
printf("%s=%s\n",h(h(f(1,2))), h(f(1,2))); //2. "12"=12
printf("%s=%d\n", h(num),num); //num=1024
return 0;
}

因此,在字符串化宏(#1)中添加另一个级别将首先进行替换,然后将其放入代码(#2)中,以类似的方式,可以在编译时用值替换变量。我的意思是说 if var = value;那么有什么方法可以some_macro(var) --> 可以将其字符串化为“value”吗?

最佳答案

无法使用预处理器获取变量的值 - 预处理(顾名思义)发生在编译之前,并且变量在该阶段不存在。

关于c - 是否存在使用编译器指令宏的 itoa 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007180/

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