У меня есть это:
char * str = "hahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohohohahahahahihihihihohohoho\0";
Как мне это правильно отформатировать, разбив 80 столбцов? С использованием:
char * str = "foo\
bar";
кажется очень плохой идеей, это приводит к неопределенному поведению, заставляя strlen()
возвращать бессмысленные значения
изменить: это неопределенное поведение, о котором я говорю:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *s = "haha\
hihi\0";
unsigned i = strlen(s);
printf("Length: %i\n", i);
return 0;
}
imperator@RomaAeterna ~/P/C/undefined> gcc -Wall -Wextra undefined.c
imperator@RomaAeterna ~/P/C/undefined> ./a.out
Length: 14
=
во втором фрагменте. Помимо этого, я не вижу неопределенного поведения. - person Blaze   schedule 18.03.2019gcc -Wall -Wextra
и не получил предупреждения. Расчетная длина строки была 10 вместо 6. Мне это кажется неопределенным поведением, хотя я подозреваю, что компилятор принял tab-indent как число ... - person Theo Freeman   schedule 18.03.2019