Funktionskonstanten?



  • #define BLA 50

    geht sowas auch mit Funktionen? Wenn ja, wie?



  • Ja, du kannst Makros auch mit Parametern anwenden - im Gegensatz zu Funktionen ergeben die aber reine Textersetzungen:

    #define MAX(x,y) ((x)<(y)?(y):(x))
    

    (die Klammern sind nötig, um ungewollte Fehlzuordnungen zu vermeiden - wie gesagt: reine Textersetzung)

    PS: Ein vollwertiger Ersatz für C++ Templatefunktionen sind solche Konstruktionen nicht:

    i=3;
    j=4;
    k=MAX(i,++j);
    //welchen Wert hat j nach dieser Anweisung?
    


  • lisp hat macros. probier scheme lisp. 😃


Log in to reply