C Programmierung Tutorial Teil 2 – Präprozessoren

Im ersten Teil unserer laufenden C-Programmier-Tutorialreihe haben wir uns kurz mit der Vorverarbeitungsphase beschäftigt. In diesem Tutorial werden wir es etwas ausführlicher besprechen, damit Sie eine grundlegende Idee davon haben, bevor Sie andere Aspekte der C-Programmierung lernen.

Die Vorverarbeitung ist in der Regel die erste Phase der Programmerstellung, in der alles, was mit einem’#‘ beginnt, verarbeitet wird. Nehmen wir einen einfachen Beispielcode.

#include <stdio.h>
int main (void)
{
printf("\n Hello World \n");
return 0;
}

Ja, dies ist derselbe Code, den wir im ersten Teil dieser Artikelserie verwendet haben. Hier ist es die erste Zeile, die mit einem Hash’#‘ beginnt. Für den Laien stellt die Zeile’#include <stdio.h>‘ sicher, dass der Inhalt der Headerdatei’stdio.h‘ während der Kompilierung in dieses Programm aufgenommen wird.

Was also in der Vorverarbeitung passiert, ist, dass diese Zeile durch den eigentlichen Inhalt der Headerdatei ersetzt wird. Hier ist, wie der Code nach der Vorverarbeitung aussieht:

C Code File

Sie können also sehen, dass alles über den wenigen Zeilen Code, die wir geschrieben haben (siehe unten im Screenshot), der Inhalt von stdio.h ist. Nun werde ich nicht im Detail darauf eingehen, wie ich es geschafft habe, den Code nach der Vorverarbeitung zu sehen, aber das sollte Ihnen eine klare Vorstellung davon geben, was während der Vorverarbeitung passiert.

Weiter geht es, Zeilen, die eine Header-Datei enthalten, sind nicht die einzigen, die mit einem Hash (#) beginnen. Es gibt auch etwas namens Makros, das ebenfalls mit # beginnt. Deshalb ist es wichtig, sie hier zu diskutieren (zumindest ihre Grundlagen).

Ein Makro ist nichts anderes als ein Name (normalerweise in Großbuchstaben), der sich auf ein Stück Code bezieht. Makros werden mit der Direktive’#define‘ definiert. Hier ist ein Beispiel:

#include <stdio.h>
#define PRINT_HELLO_WORLD printf("\n Hello World \n"); 
int main (void)
{
    PRINT_HELLO_WORLD
    PRINT_HELLO_WORLD
    return 0;
}

Also haben wir ein Makro PRINT_HELLO_WORLD mit dem Wert printf(„\n Hello World \n“) definiert; . Nun, wo immer wir diesen Makronamen im Code verwenden werden, wird er während der Vorverarbeitungsphase durch seinen Wert ersetzt. Hier ist der Code nach der Vorverarbeitung:

C Program Macro

Sie sehen also, dass beide Vorkommen des Makros durch seinen Wert in der Vorverarbeitung ersetzt wurden. Natürlich gibt es noch einige andere Details zu Makros, die Sie kennen sollten, um sie erfolgreich einsetzen zu können. Wir werden diese Details in einem Makro-eigenen Teil dieser Tutorial-Serie besprechen.

Weiter geht es, die dritte Art von Zeilen, die mit # beginnen, sind #ifdef und #endif. Diese werden für die bedingte Kompilierung verwendet. Um Ihnen eine schnelle Vorstellung zu geben, gibt es Zeiten, in denen Sie nicht wollen, dass ein Teil des Codes basierend auf einer bestimmten Bedingung kompiliert wird, es ist in Fällen wie diesen, diese Anweisungen werden verwendet.

Hier ist ein Beispiel:

#include <stdio.h>
#define PRINT_HELLO_WORLD printf("\n Hello World \n");
int main (void)
{
#ifdef CONDITION
PRINT_HELLO_WORLD
#endif
PRINT_HELLO_WORLD
return 0;
}

Im obigen Code ist’CONDITION‘ nirgendwo definiert, so dass das erste Auftreten von’PRINT_HELLO_WORLD‘ nur in der Vorverarbeitungsphase im Code weggelassen wird. Hier ist der Beweis:

Zustandscode

So können Sie nach der Vorverarbeitung nur noch eine printf-Anweisung sehen.

Fazit

In diesem Tutorial haben wir die Vorverarbeitung diskutiert, um Anfängern der C-Programmierung eine grundlegende Vorstellung davon zu vermitteln, was in dieser Phase passiert. Fahren Sie nun mit Teil 3 fort, um mehr über die Grundlagen der C-Programmierung zu erfahren.

Das könnte Dich auch interessieren …