>> Und das ist immer so,
>
> Eine etwas gewagte Aussage -- könnte es irgendwo auf der Welt nicht
> doch einen extrem schlecht programmierten C-Compiler geben?
Stimmt, die war zu gewagt, wie ich gerade festgestellt habe. Ich wollte
erst antworten, dass der Standard die Auswertung konstanter Ausdrücke
vorschreibt, und dass jeder Compiler, der dies nicht tut, deswegen kein
C-Compiler ist.
Das stimmt so aber nicht: Laut Standard müssen zwar bestimmte Ausdrücke
(bspw. die Größenangabe in statischen Array-Definitionen) konstant sein,
damit der Compiler durch sofortige Auswertung dieser Ausdrücke Dinge zur
Compile-Zeit organisieren kann, die zur Laufzeit nur mit viel Aufwand zu
realisieren wären. Das bedeutet aber natürlich nicht, dass konstante
Ausdrücke in anderen Kontexten, bspw. in Zuweisungen, ebenfalls zur
Compile-Zeit berechnet werden müssen.
Da der Compiler aber für die im Standard aufgeführten Fälle konstante
Ausdrücke sowieso erkennen und berechnen können muss, kostet es den
Compiler-Entwickler praktisch keinen zusätzlichen Aufwand (eher im
Gegenteil), dieses Feature auf Ausdrücke in allen Kontexten
anzuwenden.
Insofern würde ich davon ausgehen, dass auch ohne entsprechende
Vorschrift jeder C-Compiler die 1234/232 im obigen Beispiel schon beim
Kompilieren berechnet, und meine Aussage war vielleicht doch nicht ganz
so gewagt ;-)