Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)

Ähnliche Präsentationen


Präsentation zum Thema: "Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)"—  Präsentation transkript:

1 Der Präprozessor

2 Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden) wird vorher der Präprozessor aufgerufen, der die sogenannten Präprozessor-Direktiven ausführt.

3 Eine Präprozessor-Direktive ist eine spezielle "Anweisung", die immer mit # beginnt. Beispiel: #include "stdafx.h" Kopiert den Inhalt der Datei stdafx.h des aktuellen Verzeichnisses und fügt ihn an dieser Stelle ein.

4 Eine weitere Präprozessor- Direktive ist die #define-Direktive Beispiele: #define PI 3.14 #define FALSCH false wird als Abkürzung für die Kreiszahl 3.14 benutzt. wird als Abkürzung für den Wert false benutzt Der Präprozessor ersetzt überall im Programm diese Abkürzungen durch 3.14 bzw. false, außer... die Abkürzung befindet sich in einer Zeichenkette. Empfehlung: Abkürzungen groß schreiben !

5 Eine Zeichenkette ist dadurch gekennzeichnet, dass sie zwischen Anführungszeichen steht. Wo haben Sie bis jetzt Zeichenketten kennen gelernt? Bei der Textausgabe durch printf muss der ausgegebene Text eine Zeichenkette sein.

6 Beispiel:

7 #include "stdafx.h" #include #define KURZ "Programmieren ist harte Arbeit\n" #define GROSSEKLAPPE int main(){ printf(KURZ); printf("KURZ"); GROSSEKLAPPE } ist eine Abkürzung für... diese Zeichenkette ist eine Abkürzung für... gar nichts, d.h. ein "leeres Wort". GROSSEKLAPPE wird also entfernt ! wie sieht das Programm aus, nachdem der Präprozessor die #define-Direktiven ausgeführt hat ?

8 int main(){ printf("Programmieren ist harte Arbeit\n"); printf("KURZ"); } KURZ wurde durch diese Zeichenkette ersetzt. KURZ steht in einer Zeichenkette, wird also nicht ersetzt. GROSSEKLAPPE wurde durch "nichts" ersetzt, deshalb fehlt die vorletzte Zeile in der letzten Folie. Das ist der Text (Quellcode oder Sourcecode), den der Compiler vom Präprozessor zur Bearbeitung vorgesetzt bekommt:

9 Aus Gründen der Übersichtlichkeit und der Strukturierung könnte man jetzt z.B. folgendes machen:

10 #include "stdafx.h" #include #define KURZ "Programmieren ist harte Arbeit\n" #define GROSSEKLAPPE int main(){ printf(KURZ); printf("KURZ"); GROSSEKLAPPE } Im aktuellen Verzeichnis des Projekts (also da, wo auch stdafx.h des aktuellen Projekts vorkommt) eine Datei z.B. mydef.h erstellen. Dann die zwei #define-Direktiven in diese Datei verschieben, also hier rauslöschen und dann diese Datei mit der #include-Direktive hier einfügen, also...

11 Dateiinhalt von mydef.h des aktuellen Projekts: #define KURZ "Programmieren ist harte Arbeit\n" #define GROSSEKLAPPE

12 Das Programm sieht dann wie folgt aus:

13 #include "stdafx.h" #include int main(){ printf(KURZ); printf("KURZ"); GROSSEKLAPPE } Was fehlt noch im Programm ?

14 #include "stdafx.h" #include #include "mydef.h" int main(){ printf(KURZ); printf("KURZ"); GROSSEKLAPPE }


Herunterladen ppt "Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)"

Ähnliche Präsentationen


Google-Anzeigen