【发布时间】:2021-03-15 21:43:51
【问题描述】:
我正在编写一些涉及编写 char 数组的代码,如下所示:
char arr[] = { CONST1, CONST2, 'h', 'e', 'l', 'l', 'o' };
(CONST1 和 CONST2 是枚举值)
有什么方法可以将这个字符字符串表示为单个字符串文字(通过预处理器宏或其他方式)?例如
char arr = {CONST1, CONST2, "hello"};
用单引号和双引号括起来会产生预期的编译器错误。
【问题讨论】:
-
假设
CONST1和CONST2定义类似于'a',您可以将它们重新定义为"a",然后只需char arr[] = CONST1 CONST2 "hello";(请注意,它不完全等同于您的初始sn-p - 因为那个缺少空终止) -
@EugeneSh。应该在问题中指定 -
CONST1等是来自枚举的值,即整数 -
嗯,这会让事情变得更复杂
-
这对我的代码来说不是必要的,它只会让编写它(因为这是在开发过程中经常改变的部分)少了一件苦差事,而且看起来很奇怪太费力了。
标签: c gcc c-preprocessor