Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Anfängerfrage: Für mich kryptischer Code

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 <
000
10.10.2011, 23:56 Uhr
C-Laie



Hallo liebe Forumsmitglieder!

Ich habe ein zweizeiliges Codeschnipsel, das mir völlig kryptisch erscheint, insbesondere die zweite Zeile, die mit der ersten im Zusammenhang zu stehen scheint:


Code:
w= n - child < WIDTH ?
n - child : WIDTH;


Alle vier beteiligten Variablen sind Integertypen.

Ein Borland-C++-Compiler übersetzt das klaglos.

Konkret kann ich mit dem Fragezeichen und dem Doppelpunkt nichts anfangen. Eine Anweisung kann ich in der zweiten Zeile nicht erkennen, deshalb vermute ich, daß diese mit der ersten Zeile im Zusammenhang steht, zumal ja auch kein trennendes Semikolon existiert.

In einem Einführungsbuch wurde ich auch nicht schlau, jedenfalls scheinen diese Zeichen keine Operatoren zu sein.

Kann mir bitte jemand helfen?

Danke im voraus und Gruß

C-Laie

Dieser Post wurde am 11.10.2011 um 00:03 Uhr von C-Laie editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.10.2011, 08:24 Uhr
~f.-th.
Gast


Hab jetzt nicht viel Zeit.

Probiere es doch einfach aus.
Welchen Wert hat w, wenn n - child < WIDTH?
Welchen Wert, wenn das nicht zutrifft.

Eventuell auch das Ergebnis von WIDTH noch auslesen.

Kann man auch in eine Zeile schreiben.
Schnellschuss - das sollte jemand noch ausführlicher erklären können.

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.10.2011, 08:30 Uhr
Lensflare



das ist eine Kurzform für "if, else"

bedingung ? a : b

wenn die bedingung erfüllt ist, wird a genommen. sonst wird b genommen.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.10.2011, 08:57 Uhr
ao

(Operator)


Fragezeichen und Doppelpunkt sind ein Operator und nennen sich "Bedingter Ausdruck" oder "conditional expression".

Eine Erklärung mit typischem Anwendungsbeispiel gibts hier: http://home.htw-berlin.de/~junghans/cref/SYNTAX/conditional.html

Die Behauptung "Man geht davon aus, daß ein Compiler aus bedingten Anweisungen effektiveren Maschinencode erzeugen kann." ist allerdings Unsinn. Effektiv (= in der Wirkung) sind beide Versionen identisch.

Vermutlich meinte der Autor "effizienteren Maschinencode". Es mag Fälle geben, wo dem Optimizer mit der einen oder anderen Version die Arbeit leichter fällt - das hängt auch von der Zielplattform ab. Aber so als verallgemeinerte Aussage würde ich meinen, das stimmt nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.10.2011, 12:28 Uhr
C-Laie



Ich schätze und hoffe, daß diese Eure Antworten ausreichen, um nunmehr wieder selbständig voranzukommen.

Vielen Dank Euch dreien dafür!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: