Gast
#3123842
Diese Zeilen aus einem DAC-Example lassen sich kompilieren:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
|
Anzeige
|
Alternativ-Schreibweise von if
Gast
#3123842
Diese Zeilen aus einem DAC-Example lassen sich kompilieren:
Gast
#3123846
Beachte die Befehlssynthax: http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/conditional.html
Gast
#3123848
Dein Ausdruck hat gleich mehrere Fehler, vermutlich meinst Du: a = (a > b) ? 3 : b; Bei dir steht ja auch was völlig anderes! Die Syntax ist keine alternative Schreibweise für 'if', sondern eine 'Zuweisung mit Auswahl'. (Beachte: Fehlermeldung!)
Den Stil des Beispiels solltest Du dringendst nicht nachahmen, wie unlesbar das ist, hast du ja sicher daran gemerkt, dass du die Funktionsweise des ternären Operators missverstanden hast. In der (seit kurzem privatisierten) Hölle gibt es einen eigenen Raum für Menschen, die sowas fabrizieren. Das folgende sollte (bis auf frühmorgendliche Fehler) den gleichen Assemblercode produzieren:
Nicht so "schön kompakt", aber die Zeit zum Verstehen sollte sich deutlich unterscheiden.
Gast
#3123857
Danke, ich glaub ich habs verstanden. Tom K. schrieb: > Den Stil des Beispiels solltest Du dringendst nicht nachahmen Na, wie sollen wir denn dann mal neue Teilnehmer für den IOCCC gewinnen? ;-) Fragender schrieb: > Meine hier nicht. Warum? > int a = 1; > int b = 2; > a > b ? a = 3 : a = b; //Error 1 lvalue required as left operand of assignment Der '?:'-Operator bindet stärker als der '='-Operator, deswegen interpretiert der Compiler deine Anweisung folgendermaßen:
Richtig wäre
Dasselbe erreichst du aber gemäß Peters und Ralfs Vorschlag eleganter und lesbarer so:
Yalu X. schrieb: > Richtig wäre a > b ? a = 3 : (a = b); Hehe, Yalu kommt noch viel eher in die privatisierte Hölle ;-) Wobei man das erste Beispiel auch lesbarer formatieren kann:
Gast
#3129266
A. K. schrieb: > Wobei man das erste Beispiel auch lesbarer formatieren kann Aber immernoch weit weg, von gut lesbar. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|