Makro oder inline Funktion
-
Hi
wenn man in C++ programmiert, was sollte man verwenden?
Ein Makro wie#define MIN(x,y) (x<y ? x : y)oder besser eine inline Funktion wie
inline int Min(int x, int y) {return x<y ? x : y;}?
Also allgemein gesagt: Wo liegen Vor- und Nachteile von Makros und inline Funktionen und was sollte man in C++ eher verwenden?
Das ganze betrifft auch die Frage nach der Definition von Konstanten. Sollte man in C++ lieber#defineverwenden oder
constund wo liegen hier Vor- und Nachteile?
-
Hallo
Ich würde sagen, dass du immer versuchen solltest inline-Funktionen und const zu benutzen, weil sie eine Typsicher sind und nicht einfach nur Text ersetzen. Scott Meyers schreibt dazu auch ein nettes Kapitel in seinen Buch "Effektiv c++ programmieren"
chrische
-
Wenn du ein Makro durch eine inline Funktion oder ein "const" ersetzen kannst, dann tu das.
Es gibt einige Dinge wo man Makros nach wie vor braucht bzw. sie Sinn machen, aber wohl nicht für solche Dinge wie min/max oder eben Konstanten.