Suche
Suche Menü

Symbolische Konstanten

Mit einer symbolischen Konstante kann man das Gleiche erreichen, wie mit einer konstanten Variable, allerdings ist die Funktionsweise komplett verschieden. Eine symbolische Konstante ist im Prinzip nur eine Textersetzung. Man definiert für eine symbolische Konstante einen Namen und einen Wert. Beim Kompilieren werden im Hintergrund alle symbolischen Konstanten im Quellcode durch deren Werte ersetzt.

Eine symbolische Konstante wird im Präprozessor durch #define definiert. Danach folgen mit Leerzeichen getrennt der Name der symbolischen Konstanten und der Wert, ohne abschließenden Strichpunkt. Um symbolische Konstanten im Quellcode besser erkennen zu können, hat es sich eingebürgert, die Namen in Großbuchstaben zu schreiben.

#include<stdio.h>

// Symbolische Konstante
#define MWSTFAKTOR 0.19

int main() {
	float betrag = 350.0;
	float mwst = betrag * MWSTFAKTOR;
	printf("%.f%% von %.2f Euro: %.2f Euro\n", MWSTFAKTOR * 100, betrag, mwst);
	return 0;
}

Bemerkung: Bei der printf Ausgabe müssen wir hier ein doppeltes Prozentzeichen („%%“) verwenden, damit es nicht als Formatanweisung gesehen wird, sondern ein einzelnes Prozentzeichen ausgegeben wird.

Im Hintergrund finden die Ersetzungen statt, hiervon bekommen wir jedoch nichts mit. Das Programm würde danach so aussehen:

#include<stdio.h>

int main() {
	float betrag = 350.0;
	float mwst = betrag * 0.19;
	printf("%.f%% von %.2f Euro: %.2f Euro\n", 0.19 * 100, betrag, mwst);
	return 0;
}

Symbolische Konstanten entfernen

Die über #define erstellten Konstanten können mit #undef wieder entfernt werden.

#undef MWSTFAKTOR