gpt4 book ai didi

objective-c - 访问预处理器宏定义的值

转载 作者:太空狗 更新时间:2023-10-30 03:19:11 26 4
gpt4 key购买 nike

如果我在 GCC_PREPROCESSOR_DEFINITIONS 下添加宏“FOO=bar”(如果您使用 XCode,则为预处理器宏),访问“FOO”值的最佳方式是什么?

目前,我使用笨拙的:

    #define MACRO_NAME(f) #f
#define MACRO_VALUE(f) MACRO_NAME(f)

#ifdef FOO
NSLog(@"%s", MACRO_VALUE(FOO));
#else
NSLog(@"undefined");
#endif

这将输出“bar”

当然,一定有更好/更清洁的方法吗?

最佳答案

您正在做的是 stringize(或 stringify)宏值的方法。间接是不可避免的。

这在 GCC 预处理器中提到 manual section (archived link) Rob 链接到:

 #define xstr(s) str(s)
#define str(s) #s
#define foo 4
str (foo)
==> "foo"
xstr (foo)
==> xstr (4)
==> str (4)
==> "4

关于objective-c - 访问预处理器宏定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3261763/

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