В каком-то коде, который я сегодня прочитал, существовал новый для меня тип инициализации C-String.
Он объединяет несколько String-Initialization, таких как ABC...
Это также позволяет разделить инициализацию строки на несколько строк.
Я создал небольшую демонстрацию 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, вы находите документацию, описывающую ее?
- это портативное?