Es ist ein Makro, dass aussoufian88 hat geschrieben:Was hat die Zeile auf sich? zumindest die hälfte der Zeile verstehe ich#define MIN(a,b) ( (a < b) ? (a) : (b) )
Code: Alles auswählen
int min = MIN( 1, 2 );
Code: Alles auswählen
int min = ( ( 1 < 2 ) ? ( 1 ) : ( 2 ) );
Hier wird a und b wirklich per Copy and Paste eingesetzt, es werden eben nicht - wie bei Funktionsaufrufen - die Werte ausgerechnet und übergeben, sondern es wird der pure Text übertragen.
Also aus
Code: Alles auswählen
int min = MIN( ++a, ++b );
Code: Alles auswählen
int min = ( ( ++a < ++b ) ? ( ++a ) : ( ++b ) );
Für alle Fälle: Der ?: Operator ist eine Unterscheidung: ( Bedingung ) ? (Wert, wenn Bedingung wahr) : (Wert, wenn Bedingung falsch)
Also eine Art if ... else ... in Kurzschreibweise.