C:Präprozessor

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

C:Präprozessor

Beitrag von Xin » Di Jul 22, 2008 7:08 pm

neue url: http://tutorial.proggen.org/doku.php?id=c:preprocessor


...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.

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: C:Präprozessor

Beitrag von Metamorph » Di Jul 22, 2008 9:22 pm

Das verstehe ich nicht ganz. Ich habe dieses Kapitel nirgendwo genfunden.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C:Präprozessor

Beitrag von Xin » Di Jul 22, 2008 10:05 pm

Metamorph hat geschrieben:Das verstehe ich nicht ganz. Ich habe dieses Kapitel nirgendwo genfunden.
Da Du das Kapitel des Präprozessors angelegt hast, hast Du des Pudels Kern damit verstanden. ^^

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.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: C:Präprozessor

Beitrag von Kerli » Di Jul 22, 2008 10:18 pm

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...
"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

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: C:Präprozessor

Beitrag von Metamorph » Mi Jul 23, 2008 5:00 pm

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.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: C:Präprozessor

Beitrag von fat-lobyte » Do Sep 18, 2008 9:04 am

Tut mir leid an den Autor, aber ich habe am Text ziemlich was zu bemängeln:
#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.
Falsch.
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

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.
Siehe oben.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: C:Präprozessor

Beitrag von Dirty Oerti » Fr Sep 19, 2008 3:09 pm

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
Kann ich bestätigen.
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.

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: C:Präprozessor

Beitrag von Metamorph » Mo Okt 06, 2008 1:55 am

Ich habe jetzt diesen Block jetzt gelöscht. Da habe ich wohl etwas falsch verstanden. ^^
Danke für den Hinweis.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C:Präprozessor

Beitrag von Xin » Mo Okt 06, 2008 10:41 am

Xin hat geschrieben:...bitte nach C:Preprozessor verschieben, danke.
Verschoben.
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.

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: C:Präprozessor

Beitrag von Metamorph » Mo Okt 06, 2008 6:52 pm

Xin hat geschrieben:
Xin hat geschrieben:...bitte nach C:Preprozessor verschieben, danke.
Verschoben.
Ich verstehe es nach wie vor nicht. ^^
oO

Antworten