Один из ответов на Почему вы не используете C для своих веб-приложений? содержит следующее:
Для дерьмового примера C ниже:
const char* foo = "foo"; const char* bar = "bar"; char* foobar = (char*)malloc(strlen(foo)+strlen(bar)+1); strcpy(foobar, foo); strcat(foobar, foo);
На самом деле, константы МОГУТ И ДОЛЖНЫ быть конкатенированы естественным образом в C:
const char foo[] = "foo"; const char bar[] = "bar"; char foobar[] = foo bar; // look Ma, I did it without any operator!
И использование [] вместо *даже позволит вам изменить строку, или найдите их длину:
int foo_str_len = sizeof(foobar)-1;
Итак, ПОЖАЛУЙСТА, прежде чем (ложно )утверждать, что C сложно использовать со строками, изучите, как использовать C.
Я пробовал это сам, но получаю ошибку:
ожидается ',' или ';' перед строковой константой
Итак, мой вопрос: :Нужно ли мне что-то сообщать компилятору, чтобы это сработало, или сообщение выше просто неверно? Обратите внимание, что я знаю другие способы конкатенации символьных массивов в C.