Ich habe die folgende Aussage:
printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n", sp->name, sp->args, sp->value, sp->arraysize);
Ich möchte es auflösen. Ich habe Folgendes versucht, aber es funktioniert nicht.
printf("name: %s\t
args: %s\t
value %d\t
arraysize %d\n",
sp->name,
sp->args,
sp->value,
sp->arraysize);
Wie kann ich es auflösen?
Antworten:
Wenn Sie ein Zeichenfolgenliteral in mehrere Zeilen aufteilen möchten, können Sie mehrere Zeichenfolgen miteinander verketten, eine in jeder Zeile, wie folgt:
quelle
Nur einige andere Formatierungsoptionen:
Sie können Variationen zum Thema hinzufügen. Die Idee ist, dass die
printf()
Konvertierungsspezifizierer und die jeweiligen Variablen alle "schön" ausgerichtet sind (für einige Werte von "schön").quelle
Der C-Compiler kann benachbarte String-Literale wie folgt zu einem zusammenfügen
Der Präprozessor kann einen Backslash als letztes Zeichen der Zeile verwenden, ohne CR (oder CR / LF, wenn Sie aus Windowsland stammen):
quelle
Die De-facto-Standardmethode zum Aufteilen komplexer Funktionen in C ist pro Argument:
Oder wenn Sie so wollen:
Sie sollten die Zeichenfolge nicht aufteilen oder
\
eine C-Linie unterbrechen. Ein solcher Code wird schnell völlig unlesbar / nicht mehr wartbar.quelle
Ich denke nicht, dass die Verwendung einer
printf
Anweisung zum Drucken von Zeichenfolgenliteralen wie oben gezeigt eine gute Programmierpraxis ist. Vielmehr kann man den folgenden Code verwenden:quelle