Compile- oder Runtime-Debug?
-
Hallo,
Ich habe da mal eine Frage... aber der Titel sagt ja im Grunde schon alles aus^^
Für ein größeres Projekt möchte ich wissen, ob es effektiver ist, die Debugging-Funktionen per #define oder doch lieber mit einer konstanten Variable zu machen.
Also so in der Art:
...header... #define __DEBUG__ int main() { ... #ifdef __DEBUG__ std::cerr << "FEHLER!" << std::endl #endif ... }Oder doch lieber:
...header... const bool debug = TRUE; int main() { ... if(debug) std::cerr << "FEHLER!" << std::endl ... }
-
Wenn man den Profis hier im Forum glauben kann, macht es keinen Unterschied. Gute Compiler sollten zur Compile-Time feststehende Konstanten erkennen, ersetzen und damit den sowieso nicht ausgeführten Code auch gleich entfernen (habe den Thread mit einer ellenlangen Diskussion dazu erst gestern gelesen - finde ihn aber nicht mehr -.-).
Ich habe mich davon selbst noch nicht überzeugt und würde so oder so Präprozessordirektiven vorziehen
(denn dafür sind sie imo da, und darauf kann ich mich 100% verlassen).Gruss,
DeSoVoDaMu
-
The-Kenny schrieb:
...
Für ein größeres Projekt möchte ich wissen, ob es effektiver ist, die Debugging-Funktionen per #define oder doch lieber mit einer konstanten Variable zu machen....Ich würde immer Konstante( Variable)n vorziehen. Gerade bei "großen Projekten" zählt nämlich die Entwicklungs-, Debugging- und Wartungszeit ganz stark mit in die "Efizienz" (ich vermute mal, dass Du "effizienter" meinst, wil beide Methoden nämlich 100% effektiv sind ... also zu gewünschten Effekt führen)

Und da haben Dinge, die der Compiler genauso sieht wie Du eindeutig die Nase vorn (sogar bis zum Bauch) !Gruß,
Simon2.