gpt4 book ai didi

宏的名称可以用作常规宏和字符串吗

转载 作者:行者123 更新时间:2023-11-30 20:48:38 24 4
gpt4 key购买 nike

在类似对象的宏中,宏的名称可以用作常规宏并用作c代码中的字符串

#define MAX   0x1001
#define ANNE 0x1002
#define LENE 0x1003

void main()
{
printf("%s is the name and number is %d ",MAX, MAX);
}

最佳答案

是的。

#define MAX   0x1001
#define EXPLAIN_MACRO_INT(x) \
printf("%s is the name and the number is %d\n", #x, x);

请小心传递给此 _INT 宏的参数。这是为了打印整数而设计的。类似地为其他类型编写宏。

用法:

EXPLAIN_MACRO_INT(MAX)

输出:

MAX 是名称,号码是 4097

<小时/>

更通用

或者如果你想像这样使用它

printf("%s is the name and the number is %d\n", EXPLAIN_MACRO(MAX));

然后

#define EXPLAIN_MACRO(x) #x, x

第二个版本可以与所有类型的参数一起使用 - 但现在您必须注意 printf 中的格式。

输出是相同的:

MAX 是名称,号码是 4097

关于宏的名称可以用作常规宏和字符串吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501591/

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