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 ]
010
29.08.2003, 16:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Nein, der gcc hat einen Bug.
--
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
011
29.08.2003, 16:30 Uhr
Pablo
Supertux
(Operator)


Die Grammatim sagt:

Zitat:

conditional-expression:
logical-or-expression
logical-or-expression ? expression : assignment-expression



Da steht nämlich assignment-expression ganz rechts. Das heisst, dass "=" in diesem Fall Vorrang vor "?" hat, oder? Es sollte zuerst zugewissen werden und dann dann ausgegeben werden, oder? Ist das der Bug?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
29.08.2003, 16:34 Uhr
virtual
Sexiest Bit alive
(Operator)


Man könnte ja meinen, daß die grammatik so aussieht:

Code:
bed? expr:expr


Tut sie aber nicht. sie sieht so aus:

Code:
bed? expr:assign-expr


Dh es ist explizit vorgesehen, hinter dem Doppeltpunkt eine Zuweisung zu machen. Der VC handelt an dieser Stelle richtig, der gcc aber falsch. Struppi Schreibt dazu:

Zitat:

A few grammar rules cannot expressed in terms of precedence [...] and associativity. For example, a=b<c ? d=e : f=g means a=((b<c) ? (d=e) : (f=g) ), but you need to look at the grammar to determine it.



@Pablo
Falls Du für den Bugreport an gcc unterstützung brauchst, melde Dich. ich könnte dir zB heute abend noch den genauen Paragraphen aus dem Standard nennen, damit die Jungs auch genau wissen, worum es geht (finden die nämlich erfahrungsgemäß gut)
--
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
013
29.08.2003, 16:34 Uhr
0xdeadbeef
Gott
(Operator)


BNF...weia, Grammatiken kommen doch erst im Hauptstudium. Nach dem, was ich gelesen habe, wäre das

Code:
((a + (b ::= c)) | b) ::= d


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


Struppi ist doch aber erst C++ - wie siehts denn in C aus?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
29.08.2003, 16:40 Uhr
virtual
Sexiest Bit alive
(Operator)


Hm, ich muß in mich gehen.
--
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
016
29.08.2003, 16:43 Uhr
Pablo
Supertux
(Operator)


was ist denn BNF für eine Normalform? Ist dies überhaupt eine Normalform oder erzähle ich schon quatsch? Ich mach Grammatiken erst nächstes Semester.

@virtual: ja , ich habe das vor. ich hab schon mir überlegt, was ich sagen wollte, aber deine Erklärung finde ich besser als meine.

Ich habe eine andere Frage:
In der Grammatik von C++ (ich gehe davon aus, dass die C-Grammatik an der Stelle gleich ist) steht nur

Code:
bed? expr:assign-expr



Wieso geht das?

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



wird c als Zuweisung interpreziert, oder wie? Oder heißt assign-expr, dass da entweder eine Zuweisen oder ein Ausdruck vorhanden sein kann?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
29.08.2003, 16:46 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich war zu voreilig, trotzdem eine interessant Inkompatibilität von C/C++:
1. Der Ausdruck gültiges C++
2. Der Ausdruck ist ungültiges C
3. Der gcc arbeitet korrekt
4. Der VC arbeitet korrekt

Wieder was gelernt.
--
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
018
29.08.2003, 16:47 Uhr
Pablo
Supertux
(Operator)


Ich hab die Grammatik von C gefunden:
www.lysator.liu.se/c/ANSI-C-grammar-y.html
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
29.08.2003, 16:49 Uhr
virtual
Sexiest Bit alive
(Operator)


@pablo:
Schmeiß den Bugreport in die Tonne. Hat alles seine Richtigkeit!
BNF = Backus Naur Form. Wird benutzt, um Grammatiken übersichtlich darzustellen
assign-expression = kann auch normale expression sein, ja.
--
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
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: