Syntax error, aber warum?
-
int a = 0; a?a=1:return 0;
error C2059: Syntaxfehler: 'return'
obiges ist doch das gleiche wie
int a = 0; if (a) a=1; else return 0;
was sich auch übersetzen und ausführen lässt, wieso spackt der dann rum?
-
syntax n00b schrieb:
obiges ist doch das gleiche wie
Nein ist es nicht. ?: ist ein Operator, und seine Operanden müssen auswertbare Ausdrücke sein, was return nicht ist.
-
ok, danke.
-
int a; if ((a = a ? 1 : a) != 1) return 0;