Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

6.2 Bedingtes Kompilieren mit #if, #elif und #endif

6.2 Bedingtes Kompilieren mit #if, #elif und #endif

Jetzt wird die ganze Sache wesentlich interessanter. Mit den folgenden Direktiven, kann man steuern, wie oder besser gesagt welcher Teil eines Quelltextes kompiliert werden soll, indem man ein paar Bedingungen und ein paar Schalter einbaut, was gerade im Zusammenhang mit "defines" interessant ist. So kann man beispielsweise ein Programm in mehreren Sprachen bauen. Die Syntax erinnert sehr stark an die normale if Anweisung, nur dass man hier keine geschweiften Klammern setzen braucht/darf und dass man mit "elif" mehrere Fälle behandeln kann, so wie das in etwa bei einer switch Anweisung der Fall ist. Man braucht zwar keine Klammern zu setzen, aber trotzdem muss man dem Präprozessor sagen, wo der Anweisungsblock zu Ende ist. Dies geschieht mittels der Direktive "endif".

Im folgendem Beispiel werde ich eine einfache Begrüßung ausgeben und der Programmierer, also Sie, können entscheiden, in welcher Sprache das Programm kompiliert werden soll.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
					
#define DEF_SPRACHE spanisch

#if DEF_SRPACHE == spanisch
	#define DEF_STRING_AUSGABE "Ola\n"
#elif DEF_SPRACHE == englisch
	#define DEF_STRING_AUSGABE "Hello\n"
#else
	#define DEF_STRING_AUSGABE "Hallo\n"
#endif



// Hauptfunktion der Anwendung ////////////////////////////////////////////////
int main(int argc, char** argv) {
	printf(DEF_STRING_AUSGABE);

	return 0;
} // main /////////////////////////////////////////////////////////////////////
					

Ausgabe:

Ola
		

Wenn Sie also hinter DEF_SPRACHE z.B. englisch schreiben, würde Hello ausgegeben werden.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012