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 👍


Anmelden zum Antworten