相关疑难解决方法(0)

C宏来创建字符串

替代标题(以帮助搜索)

  • 将预处理程序标记转换为字符串
  • 如何从C宏的值创建一个char字符串?

原始问题

我想在编译时使用C #define来构建文字字符串.

该字符串是为调试,发布等而更改的域.

我想要一些这样的事情:

#ifdef __TESTING
    #define IV_DOMAIN domain.org            //in house testing
#elif __LIVE_TESTING
    #define IV_DOMAIN test.domain.com       //live testing servers
#else
    #define IV_DOMAIN domain.com            //production
#endif

// Sub-Domain
#define IV_SECURE "secure.IV_DOMAIN"             //secure.domain.org etc
#define IV_MOBILE "m.IV_DOMAIN"
Run Code Online (Sandbox Code Playgroud)

但预处理器不评估""内的任何内容

  1. 有没有解决的办法?
  2. 这甚至是个好主意吗?

c macros stringification c-preprocessor

30
推荐指数
6
解决办法
2万
查看次数

在字符串文字中展开宏

我想要做的是#define宏:

#define a(2)
Run Code Online (Sandbox Code Playgroud)

然后在字符串文字中使用它:string = "a";.

我希望该字符串不被解释为字符串,而是获取值a,即2.我没有成功,任何人都可以帮忙吗?

c++ macros visual-c++ c++11

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

macros ×2

c ×1

c++ ×1

c++11 ×1

c-preprocessor ×1

stringification ×1

visual-c++ ×1