| |
|
|
Jac de Lad | Kann mir jemand erklären, wozu die bedingte Compilierung gut sein soll? Ich konnte jetzt jedenfalls keinen praktischen Nutzen für mich ableiten...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.05.2006 ▲ |
|
|
|
|
| Tjah wie erklärt mans hm - der Compiler ist jetzt Programmierbar, er kann if.
#if dies ist ein w32-system print das hier wird kompiliert #else print kein w32-sys #endif
Wenn Roland auch noch den einen oder anderen Schalter mit einbaut, sowas wie Debug und Release, dann könntest Du in Deinen Source einfach Debugoutputs einbetten:
#ifdef debug print bis hier klappts #endif
Nur wenn Du dann das File mit Debug kompilierst wird der Compiler die Printzeile mit einkompilieren. Die Weitergabeversion kompilierst Du mit Release - diese enthält dann keine Debugzeilen.
Für Bedingtes Kompilieren gibts viele Anwendungsbereiche - so richtig erklären kann ichs aber scheinbar nicht. |
|
|
| |
|
|
|
Dietmar Horn | Hallo,
bei der bedingten Compilierung ist es per Compilerschalter möglich, bestimmte Code-Teile z.B. nicht mit zu compilieren, ohne sie immer erst als Kommentar kennzeichnen zu müssen.
Auf diese Art und Weise ist es ganz einfach möglich, aus einem komplexeren Programmcode mehrere unterschiedliche Programmversionen zu erzeugen: z.B. eine Light-Version, eine normale Vollversion und eine Professionell-Version.
Das ginge zwar auch durch das Mitschleppen mehrerer Variablen, die bestimmte Codeteile ausklammern bzw. nicht freischalten.
Doch ein Vorteil der bedingten Compilierung besteht darin, daß Deine Light-Version nicht gecrackt werden kann, weil der Code für die normale und die Professionell-Version gar nicht mit compiliert worden ist. Und was nicht in der EXE-Datei drin ist, das kann bekanntlich nicht gecrackt werden.
Klar, ohne bedingte Compilierung kann man auch leben - nur macht es das Programmieren eben wieder einen Kick komfortabler.
Bei einem kleinen 5000-Zeilen-Progrämmchen ist das sicherlich noch überschaubar und man kann bestimmte Code-Teile noch zu Fuß auskommentieren, je nach Prgrammversion. Doch wenn der Code dann auf die 100000 Zeilen zumarschiert, dann wird das eher unübersichtlich und das ständige Kommentieren und wieder Freischalten artet in Streß aus.
Für meine Programmierkurse könnte ich das z.B. prima gebrauchen. Ich hab da ein größeres Projekt am Laufen, und es bekommen dann eben die totalen Anfänger eine Mini-Version, damit sie von der Vielfalt der Programmfunktionen nicht erschlagen werden, weil sie damit eh noch nichts anzufangen wissen. Je nach Lernfortschritt erhalten sie dann zum Beispiel in Abständen von 3 - 4 Monaten eine anders compilierte Version, in welcher immer mehr freigeschaltet ist. Wenn die entsprechenden Compilerschalter erst mal an den richtigen Stellen im Code gesetzt sind, dann kann ich unbeschwert und lustig weiter drauf los programmieren, ohne mich um die verschiedenen Versionen noch groß kümmern zu müssen (außer am Code-Anfang vor dem Compilieren den entsprechenden Schalter bzw. die jeweilige Bedingung zu setzen.
Wer für seine kleinen Mini-Programme eine solche bedingte Compilierung nicht benötigt, der muß das ja nicht nutzen. Ich finde es aber jedenfalls prima, daß es das nun auch in XProfan gibt.
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 01.05.2006 ▲ |
|
|
|
|
Jac de Lad | Hm, ich verstehs jetzt aber so richtig sinnvoll finde ichs nicht.
Wenn ich Debug-Zeug brauche, baue ich eine Messagebox ein, die ich, sobald alles funktioniert, weider entferne. Und unterschiedliche Betriebssysteme bzw. Windows-Versionen sind für mich kein Thema. Das würde ich dann entsprechend im Programm anpassen...Aber DANKE für die Hilfe!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 02.05.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Wenn ich das richtig verstanden habe, könnte man also eine Include-Datei in mehrere Programme einbinden, die darin enthaltenen Procs/Funktionen/Deklarationen usw. wären aber in Abhängigkeit der gesetzten Bedinungen bei Ausführung/Kompilierung eben nicht in allen prfs verfügbar? Anders gesagt: Wenn ich einen Teil einer Inc nicht brauche, wird er im Moment ja trotzdem mit compiliert (was voraussetzt, dass ich z.B. darin enthaltene globale Variablen dekarieren muss, weil es sonst eine Fehlermeldung gibt.) Und das lässt sich mit bedingter Kompilierung ändern?
SeeYou Pascal |
|
|
| |
|
|
|
RGH | Hallo Pascal, genauso ist es!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 03.05.2006 ▲ |
|
|
|