gpt4 book ai didi

将字符串文字与字 rune 字连接起来

转载 作者:太空狗 更新时间:2023-10-29 16:47:59 33 4
gpt4 key购买 nike

我想连接一个字符串文字和一个字 rune 字。由于语法不正确,"abc"'d' "efg" 会导致编译器错误:

x.c:4:24: error: expected ',' or ';' before 'd'

现在我不得不使用 snprift(不必要的),尽管在编译时知道字符串文字和字 rune 字的值。

我试过了

#define CONCAT(S,C) ({ \
static const char *_r = { (S), (C) }; \
_r; \
})

但它不起作用,因为 S 的空终止符没有被剥离。 (除了给出编译器警告。)

有没有办法写一个宏来使用

  • "abc"MACRO('d') "efg"
  • MACRO1(MACRO2("abc", 'd'), "efg")
  • MACRO("abc", 'd', "efg") ?

如果有人问我为什么要这样:字 rune 字来自库,我需要将字符串作为状态消息打印出来。

最佳答案

如果您可以接受其中包含的单引号,则可以使用字符串化:

#define SOME_DEF 'x'

#define STR1(z) #z
#define STR(z) STR1(z)
#define JOIN(a,b,c) a STR(b) c

int main(void)
{
const char *msg = JOIN("Something to do with ", SOME_DEF, "...");

puts(msg);

return 0;
}

取决于可能合适也可能不合适的上下文,但就以这种方式说服它实际上是一个字符串文字而言,这是唯一没有在运行时格式化的方法。

关于将字符串文字与字 rune 字连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9912214/

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