Konkatenacja łańcuchów stałych

Jedna z odpowiedzi doDlaczego nie używasz C do swoich aplikacji internetowych? zawiera następujące elementy:

Dla przykładu C crap poniżej:

<code>const char* foo = "foo";
const char* bar = "bar";
char* foobar = (char*)malloc(strlen(foo)+strlen(bar)+1);
strcpy(foobar, foo);
strcat(foobar, foo);
</code>

W rzeczywistości stałe MOGĄ I POWINNY być naturalnie łączone w C:

<code>const char foo[] = "foo";
const char bar[] = "bar";
char foobar[] = foo bar; // look Ma, I did it without any operator!
</code>

A użycie [] zamiast * pozwoli nawet zmodyfikować łańcuch lub znaleźć jego długość:

<code>int foo_str_len = sizeof(foobar)-1;
</code>

Więc proszę, zanim (fałszywie) twierdzisz, że C jest trudny w użyciu z ciągami, naucz się korzystać z C.

Sam to wypróbowałem, ale wystąpił błąd:

oczekiwany „,” lub „;” przed ciągiem znaków

Więc moje pytanie brzmi: czy muszę coś powiedzieć kompilatorowi, aby ten działał, czy powyższy post jest po prostu błędny? Zwróć uwagę, że znam inne sposoby łączenia tablic znaków w C.

questionAnswers(3)

yourAnswerToTheQuestion