TEXTMETRIC
-
hallo
es geht um diese zeile:
cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;
habe vom Buch "Windowsprogrammierung" von Petzold
kann mir jemand den sin von 1 ? 3 : 2 genau erklären?
ist das eine verkürzte if-schleife?danke sehr im voraus
Gruss, Maximo
-
Du hast es erfasst. ?: ist eine verkürzte If, else anweisung.
[Bedinung] ? [Ereignis für Wahr] : [Ereignis für Falsch]
Ich nehme die Dinger eher ungern her, da ich sie unübersichtlich finde. Aber vor allem in diesem fall ist es schon ne schöne Code ersparnis. Die Alternative mit if/else sähe dann so aus:
if (tm.tmPitchAndFamily & 1) csCaps = 3 * cxChar / 2; else csCaps = 2 * cxChar / 2;
-Edit-
Achja, die Frage von dir habe ich Total übersehen. Es wird zuerst das Bitweise und (&) berechnet, da es eine höhere Priorität hat als ?:
-
danke, dass du meine Vermutung verstärkt hast