Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 42. Virtual rästel (profis!!!)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
29.08.2003, 15:57 Uhr
virtual
Sexiest Bit alive
(Operator)


Hi,

Leider darf speziell Pablo nicht gleich zu anfang mitmachen, der kennt schon Teile der Lösung

Es geht um folgenden Ausdruck:

C++:
int a, b, c, d;

a? b=c:b=d;


Dieser Ausdruck sei so und nicht anders gegeben (klar, er läßt sich vereinfachen!).
Einfache Frage: ist er gültig oder nicht?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 29.08.2003 um 15:57 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.08.2003, 16:00 Uhr
0xdeadbeef
Gott
(Operator)


Nein. Soll ich schon ne Begründung geben?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.08.2003, 16:00 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja, bitte.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.08.2003, 16:01 Uhr
0xdeadbeef
Gott
(Operator)


Die ?-:-Kombination bindet stärker als die Zuweisung. Deswegen wird der Compiler mit "invalid lvalue in assignment" oder so was ähnlichem abbrechen. Richtig wäre der Ausdruck:

C++:
b=a?c:d;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.08.2003, 16:02 Uhr
0xdeadbeef
Gott
(Operator)


Solche Fragen darfst du einen Golfer nie stellen. Ich hab das schon oft genug ausprobiert, um es nicht zu wissen
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.08.2003, 16:04 Uhr
virtual
Sexiest Bit alive
(Operator)


Leider liegen die Dinge anders. Du hast zwar bzgl. der Operatoren Reihenfolge recht, und ich war auch versucht mich Deiner Argumentation anzuschließen, aber leider ist das in dieser Speziellen Situation kein ausschlaggebendes Argument. Tip: wie würdest Du den ?: Operator in BNF schreiben?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.08.2003, 16:09 Uhr
virtual
Sexiest Bit alive
(Operator)


Tipps:
1. Verschiedene Compiler, verschiedene Ergebnisse.
2. Verschiedene Compiler, verschiedene Bugs.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
29.08.2003, 16:12 Uhr
0xdeadbeef
Gott
(Operator)


Ich habs grad mal durch den gcc gejagt, der meint, ich hätte recht. ints als bools zu missbrauchen ist in C legitim, Zwischen ? und : ist ne Zuweisung auch OK. Also, das lvalue ist auf jeden Fall invalid, und was sonst noch daran kaputt sein könnte, seh ich nicht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.08.2003, 16:13 Uhr
0xdeadbeef
Gott
(Operator)


Meinst du, dass die Variablen nicht initialisiert sind? Das dürfte den Compiler aber nicht stören, bzw. der dürfte höchstens warnen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.08.2003, 16:18 Uhr
Pablo
Supertux
(Operator)


Also war mein Problem wohl kein Bugs sondern nur eine Folge der Grammatik. Ich habe das in der Grammatik (von C++) nachgeschaut, ich gehe davon aus, dass die C Grammatik an dieser Stelle gleich ist, und jetzt ist mir klar, dass das sinnlos ist. Jetzt vertehe ich sogar was dr gcc mit invalid lvalue in assignment sagen will. heißt es, dass VC++ Bugs enthält oder M$ hat eine eigene C++ Grammatik?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: