Nehmen wir an, ich schreibe char c[99] = {'Stack Overflow'};
in C oder C++. Es kompiliert gut, aber ist das gültig? Mit gültig meinte ich, kein undefiniertes oder nicht spezifiziertes Verhalten aufzurufen.Ist dies eine gültige C-Anweisung?
Nochmal wenn ich schreibe char c[99] = 'Stack Overflow';
gcc beklagt sich über Multicharacter-Konstante, die offensichtlich ist, aber in dem oben, wenn ich in geschweiften Klammern eingeschlossen Compiler ist glücklich! Wieso ist es so?
Ich bemerke auch, dass puts(c);
nach der ersten Anweisung 'w' genau das letzte Zeichen einer allgemeinen Zeichenfolge anstelle von Stack Overflow
ausgeben wird. Warum?
Kann jemand diese Verhaltensweisen separat erklären?
Kompilieren Sie es und finden Sie es heraus. – Falmarri
Er sagte bereits, dass er es kompiliert hat ... – indiv
@Falmarri: Ich denke, dass Sie den RTFQ Preis gewinnen. Er sagte "es kompiliert gut" und beschreibt auch die Ausgabe, offensichtlich hat er es getestet. Aber Tests zeigen nicht, ob es portabel oder vom Standard gut definiert ist. –