gpt4 book ai didi

c - 两者的区别定义?

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

两个define有什么区别?

#define NUM                 123
#define NUM_TO_STRING1(x) #x
#define NUM_TO_STRING(x) NUM_TO_STRING1(x)

printf("NUM_TO_STRING1: %s\n", NUM_TO_STRING1(NUM));
printf("NUM_TO_STRING: %s\n", NUM_TO_STRING(NUM));

结果:

NUM_TO_STRING1: NUM
NUM_TO_STRING: 123

为什么NUM_TO_STRIN1不能把NUM改成字符串123

最佳答案

使用 #,您要求它不要这样做。 # 所做的只是stringify 紧随其后的内容。我认为您试图利用的成语很常见:

#define STR(_a)   #_a
#define XSTR(_a) STR(_a)

#define BAR foo

设置成这样,

STR(BAR) 

会给你 "BAR"

XSTR(BAR)

会给你 "foo"

关于c - 两者的区别定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699271/

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