- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想连接一个字符串文字和一个字 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/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!