Programmieren in C

Makros und symbolische Konstanten

Inhaltsübersicht

Du möchtest wissen, was symbolische Konstanten und Makros sind? Im folgenden Beitrag erklären wir dir, wann man diese beiden verwenden kann.

 

C Makro und symbolische Konstante einfach erklärt

Symbolische Konstanten werden in etwa so vereinbart:

#define CONST BSP

Makro C
Symbolische Konstante

Doch was nutzen sie dir jetzt? Symbolische Konstanten werden bereits durch den Präprozessor verarbeitet. Deswegen kann dieser an allen Stellen, an denen deine Konstante CONST vorkommt, sie durch den Wert BSP ersetzen. Dadurch wird es einfacher für dich unhandliche Werte wie π zu verarbeiten, da du sie nur einmal ausschreiben musst. Außerdem kannst du mit dieser Methode auch schnell Anpassungen vornehmen.

Beispiel und wichtige Hinweise

Stell dir zum Beispiel vor, du würdest wirklich \pi in einem Programm verwenden und es kommt in mehreren Funktionen vor. Nun hast du das Problem, dass dein Programm durch zu ungenaue Ergebnisse Fehler auswirft. Wenn du \pi hart codiert verwendet hast, musst du nun jede einzelne Nutzung des Wertes anpassen. Ganz anders ist es, wenn du \pi als symbolische Konstante definiert hast. Dann kannst du einfach die Vereinbarung ganz oben in deinem Quellcode um die gewünschte Zahl an Nachkommastellen erweitern und schon ist dein Problem behoben.

C Makro
Beispiel

Um diese kleinen Helfer allerdings nutzen zu können, musst du einige Dinge beachten. Zum einen musst du immer Großbuchstaben für die Namen deiner Konstanten verwenden. Dadurch kannst du sie von Variablen und Funktionen gleich auf den ersten Blick unterscheiden. Außerdem ist es noch wichtig, dass du nur lesbare Namen verwendest, da sonst hinterher niemand mehr weiß, wofür diese Konstante überhaupt steht.

 

Makro C

Der große Bruder einer symbolischen Konstante ist ein Makro. Diese werden so vereinbart:

#define M (p1,…,pn)

Sie unterscheiden sich von symbolischen Konstanten, indem sie Parameter haben. Jedoch ersetzen sie Erwähnungen ihres Namens auf dieselbe Weise. Deswegen werden sie ebenfalls durch den Präprozessor verarbeitet.

C Makro, Makro C
Makro

Im Allgemeinen ersetzen Makros aber keine Werte, sondern kleine Funktionen. Demensprechend könnte eine Makro-Vereinbarung etwa so aussehen:

#define BSP(parameter) (parameter+5)

Wenn das nun über einem Programm wie diesem hier steht, erhalten wir als Ausgabe 10. Das liegt daran, dass der Präprozessor diesen Teil durch unser Makro ersetzt.

C Makro; Makro C
Beispiel

Praktisch ist dieses Ersetzen von Funktionen vor allem dann, wenn bestimmte kleinere Operationen, zum Beispiel die Berechnung eines Minimums, sehr oft durchgeführt werden müssen. Es hilft dir dabei, deinen Code leicht anpassbar und vor allem übersichtlich zu halten.

Jetzt wo du weißt, was Makros und symbolische Konstanten sind, sollten deine Programme schon ganz anders aussehen.


Andere Nutzer halten diese Inhalte aus dem Bereich „Programmieren in C“ für besonders klaussurrelevant

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.