002
09.10.2003, 17:10 Uhr
ao
(Operator)
|
Das (A ? B : C) ist ein sog. "bedingter Ausdruck". A, B und C sind Ausdrücke. A ist die Bedingung und muss auf == 0 oder != 0 prüfbar sein. B und C sind die Rückgabewerte und müssen vom gleichen Typ sein (oder entsprechend der im Compiler eingebauten Regeln ineinander cast-bar sein).
Wie wirds verwendet? Einfaches Beispiel: Betragsfunktion
C++: |
float Absolute (float x) { return x > 0.0 ? x : -x; }
|
Die Bedingung (A) ist (x > 0.0). Ist sie erfüllt (d.h. x positiv, der logische Ausdruck (x > 0.0) ist true, d.h. nicht 0), dann wird B, also x selbst zurückgegeben. Ist sie nicht erfüllt (d.h. x negativ, der logische Ausdruck (x > 0.0) ist false), dann wird C, also -x, also der entsprechende positive Wert, zurückgegeben.
In deinem Beispiel heißt das:
Wenn in opt_msg ein gültiger String übergeben wird, wird dieser ausgedruckt. Wenn in opt_msg ein NULL-Pointer übergeben wird, wird stattdessen "", also nichts, ausgedruckt
Klarer?
ao Dieser Post wurde am 09.10.2003 um 17:12 Uhr von ao editiert. |