C:Präprozessor
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
C:Präprozessor
neue url: http://tutorial.proggen.org/doku.php?id=c:preprocessor
...bitte nach C:Preprozessor verschieben, danke.
...bitte nach C:Preprozessor verschieben, danke.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C:Präprozessor
Das verstehe ich nicht ganz. Ich habe dieses Kapitel nirgendwo genfunden.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C:Präprozessor
Da Du das Kapitel des Präprozessors angelegt hast, hast Du des Pudels Kern damit verstanden. ^^Metamorph hat geschrieben:Das verstehe ich nicht ganz. Ich habe dieses Kapitel nirgendwo genfunden.
Das Kapitel heißt "der praeprozessor".
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C:Präprozessor
Bis jetzt ist es schon einmal ganz gut, was nur nicht ganz hineinpasst ist der Vergleich mit 'const' am Schluss, weil das soweit ich gesehen habe vorher noch nicht erwähnt worden ist.
Und du solltest den Code nach Möglichkeit in 'code'-Tags einbauen, dann wird er auch farblich hervorgehoben:
<code cpp>
c-code
</code>
Ich hab die Codestücke schon geändert, aber in Zukunft solltest du es selber verwenden...
Und du solltest den Code nach Möglichkeit in 'code'-Tags einbauen, dann wird er auch farblich hervorgehoben:
<code cpp>
c-code
</code>
Ich hab die Codestücke schon geändert, aber in Zukunft solltest du es selber verwenden...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
Re: C:Präprozessor
Danke für den Hinweis mit der Codeformatierung. Davon wusste ich noch gar nicht.^^
Das mit den Konstanten (const) stimmt. Ich finde, es sollte ziemlich am Anfang stehen. Man kann es noch anlegen. Ich finde, es ist wichtig, den Unterschiede zwischen const und #define zu wissen. Werde das noch genauer erläutern.
Das mit den Konstanten (const) stimmt. Ich finde, es sollte ziemlich am Anfang stehen. Man kann es noch anlegen. Ich finde, es ist wichtig, den Unterschiede zwischen const und #define zu wissen. Werde das noch genauer erläutern.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: C:Präprozessor
Tut mir leid an den Autor, aber ich habe am Text ziemlich was zu bemängeln:
Jeder ernstzunehmende Compiler wird Konstante POD (Plain Old Data, also int, double o.Ä.) Objekte nicht im Hauptspeicher sondern gleich im Code speichern. Konstante nicht- POD Objekte (also Arrays, Strings, Structs, Klassen) werden tatsächlich im Hauptspeicher gespeichert, und zwar im .bss Segment. Da gibt es aber keinen Unterschied zwischen const und #define
Falsch.#define vs. const
Eine ähnliche Möglichkeit haben wir bereits durch das Schlüsselwort const kennengelernt. Worin liegt denn der Unterschied? Wird eine Konstante über const deklariert, reserviert der Compiler dafür Speicherplatz im Hauptspeicher. Eine durch #define deklarierte Konstante wird vor dem Kompiliervorgang vom Präprozessor ausgewertet.
Jeder ernstzunehmende Compiler wird Konstante POD (Plain Old Data, also int, double o.Ä.) Objekte nicht im Hauptspeicher sondern gleich im Code speichern. Konstante nicht- POD Objekte (also Arrays, Strings, Structs, Klassen) werden tatsächlich im Hauptspeicher gespeichert, und zwar im .bss Segment. Da gibt es aber keinen Unterschied zwischen const und #define
Siehe oben.Er durchsucht den Quelltext nach ihrem Namen und ersetzt ihn durch ihren Wert. Nimmt man aus dem oberen Beispiel den Wert E und wird dieser beispielsweise zehnmal im Programm benötigt, so wird während der Laufzeit zehnmal der Wert 2.718281 kopiert. Wäre dieser Wert über const deklariert worden, gäbe es nur eine Kopie, wodurch man Rechenleistung sparen könnte. Heutige Computer haben eine wesentliche höhere Rechenleistung als die Modelle von damals, sodass dieses Problem eher unerheblich ist.
Haters gonna hate, potatoes gonna potate.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: C:Präprozessor
Kann ich bestätigen.fat-lobyte hat geschrieben:Jeder ernstzunehmende Compiler wird Konstante POD (Plain Old Data, also int, double o.Ä.) Objekte nicht im Hauptspeicher sondern gleich im Code speichern. Konstante nicht- POD Objekte (also Arrays, Strings, Structs, Klassen) werden tatsächlich im Hauptspeicher gespeichert, und zwar im .bss Segment. Da gibt es aber keinen Unterschied zwischen const und #define
Zumindest nach dem, was mir mein Linker ausgegeben hat, wenn ich mal wieder an meinem Kernel gebastelt habe.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!

----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: C:Präprozessor
Ich habe jetzt diesen Block jetzt gelöscht. Da habe ich wohl etwas falsch verstanden. ^^
Danke für den Hinweis.
Danke für den Hinweis.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C:Präprozessor
Verschoben.Xin hat geschrieben:...bitte nach C:Preprozessor verschieben, danke.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C:Präprozessor
Ich verstehe es nach wie vor nicht. ^^Xin hat geschrieben:Verschoben.Xin hat geschrieben:...bitte nach C:Preprozessor verschieben, danke.
oO