【发布时间】:2021-07-14 19:54:34
【问题描述】:
在我今天阅读的一些代码中,存在一种 C-String 初始化类型,这对我来说是新的。
它链接多个字符串初始化,如“A”“B”“C”...
它还允许将字符串初始化拆分为多行
我设置了一个小的 Hello World 演示,所以你可以看到我在说什么:
#include <stdio.h>
#define SPACE " "
#define EXCLAMATION_MARK "!"
#define HW "Hello"SPACE"World"EXCLAMATION_MARK
int main()
{
char hw_str[] =
"Hello"
SPACE
"World"
"!";
printf("%s\n",hw_str);
printf("%s\n",HW);
return 0;
}
所以这里有一些问题:
- 这符合标准吗?
- 为什么会这样? "abc" 就像一个数组 {'a','b','c'} 对吗?那么为什么数组初始化连接在多对 "" 工作?
- 此功能有官方名称吗?比如当您在 google 中输入它时,您会找到一些描述它的文档?
- 这是便携式的吗?
【问题讨论】:
标签: c c-preprocessor c-strings string-concatenation string-literals