访问预处理器宏定义的值 [英] Accessing the value of a Preprocessor Macro definition

查看:127
本文介绍了访问预处理器宏定义的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

If I add a macro "FOO=bar" under GCC_PREPROCESSOR_DEFINITIONS (or Preprocessor Macros if you use XCode"), what would be the best way to access the value of "FOO"?

目前,我很笨拙:

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

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

这将输出栏"

当然,必须有更好/更清洁的方法吗?

Surely, there must be a better/cleaner way?

推荐答案

您正在做的是串化(或 stringify 的方式) )宏值.间接访问是不可避免的.

What you are doing is the way to stringize (or stringify) macro values. The indirection is unavoidable.

在GCC预处理程序

这篇关于访问预处理器宏定义的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆