Genauso könntest du schreiben: Warum muss man [2,4,6,8]
schreiben, wenn man auch 2468 schreiben könnte
sorry, aber das ist unfug.
ein array [2,4,6,8] steht als 02040608 im speicher. die zahl 2468 wird zu 09A4 (oder A409, je nach endian).
in meinem beispiel läuft’s mit meinem compiler aber auf’s gleiche raus.
deshalb die frage, ob es irgendeine begründung (z.B. MISRA) für die „u“„m“„s“„t“„ä“„n“„d“„l“„i“„c“„h“„e“ schreibweise gibt.
Deine zweite Variante funktioniert nicht. Dass die erste
funktioniert ist höchst singulär. Kurz und richtig ist
da ist nichts singuläres dran, denn beide Varianten sind identisch. Hintereinander folgende Stringliterale werden zu einem Literal zusammengefasst und dieses ist per Definition null-terminiert. Die Initializer List ist korrekt.
aber es gibt absolut keinen grund (außer verwirrung zu
stiften), einfach nur „Hallo Welt“ zu schreiben?
es gibt schon einige Programmierer, die Verwirrung stiften wollen, oder so programmieren, dass andere den Code nur schwer lesen können. Deshalb gibt es in der Regel auch Coding Guidelines im professionellen Bereich.