Hehe, lustigerweise ist das sogar ANSI-C, aber nicht das, was der OP im Sinn hatte. 1 | 2| 3| 4 | 5 ist eine Konstante, die zur Compilezeit ausgewertet werden kann, wie es nach einem case sein muss. Hier in dem Fall kommt 7 raus. Das 'duplucate case value' im original-Beitrag kommt nicht durch die Veroderung von Konstanten, sondern weil die Oder-Werte zur gleichen Konstante auswerten, und im Endeffekt so was dasteht:Zitat von Cathrel
case 31: ....
case 31: ....
was den Fehler gibt.
Teuflich, wenn alle Ausdrücke andere Werte gehabt hätte, da hätte sich Spurius ewig gewundert, warum sein Programm nicht geht...
Ob man über (i-1)/5 geht oder ein case ist Geschmackssache und ob man die Priorität bei Codegröße oder Geschwindigkeit (da ist case besser) legt.
Lesezeichen