Der Nachteil ist, dass Sie den Code versteckt. Der Vorteil ist, dass Sie den Code verstecken.
Der Nachteil überwiegt normalerweise die Oberseite.
Normalerweise ist dieser besondere Ansatz ist ziemlich nutzlos und es sei denn, der Anruf sieht eher aus wie
someModule-> someStorage-> Function [storage.getFunctionName] .pointer-> Funktion (... ebenso obskuren Argument ...);
es keinen Sinn, dies zu tun. Wenn nur das Argument ein obskurer Aufruf ist, schreiben Sie nur das Argument kurz. Wenn es nur die Funktion ist, schreiben Sie nur die Funktion kurz.Wenn beide, könnten Sie besser dran mit
SOME_FUNCTION(SOME_ARGUMENT);
Wenn die Funktion nie sonst mit etwas genannt wird, könnten Sie es aus Argumentliste zu entfernen und im Funktionskörper zu erhalten. Und wenn sich das Paar sehr oft in kleinen Variationen wiederholt, könnten Sie Wrapper-Funktionen in Erwägung ziehen.
Nachdem Sie mehrere Fehler im Code eines Makros machen, werden Sie lernen, es Schmerz ist, sie zu debuggen und Sie werden sie nicht leichtfertig verwenden.
Verwendung von Makros für diese ist nicht mehr lesbar als Funktionen mit dem gleichen Namen – user463035818