gpt4 book ai didi

c - # printf 语句中的符号不​​起作用

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:21 27 4
gpt4 key购买 nike

这段代码正确执行

#include<stdio.h>
#define JOIN(s1, s2) printf("%s=%s %s=%s \n", #s1, s1, #s2, s2);

int main()
{
char *str1="India";
char *str2="BIX";
JOIN(str1, str2);
return 0;
}

但是这段代码没有执行

#include<stdio.h>

int main()
{
char *str1="India";
char *str2="BIX";
printf("%s=%s %s=%s \n", #str1, str1, #str2, str2);
return 0;
}

我刚刚替换了第一段编码的第一个宏..但它不起作用

最佳答案

使用 #var 功能生成 “var” 是预处理器的一部分,因此您只能将其用作宏的一部分。

如果您想继续使用它,通常人们会编写一个名为 STRINGIFY 的宏:

#define STRINGIFY(x) #x

但在您的情况下,最好的办法可能是自己引用。

char *str1="India";
char *str2="BIX";

printf("%s=%s %s=%s \n", "str1", str1, "str2", str2);

关于c - # printf 语句中的符号不​​起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25015717/

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