Aufgabe des Präprozessors beschreiben
-
Hey!
Welche Aufgabe übernimmt der Präprozessor, sobald er auf eine Quellcodezeile trifft, in der das MAKRO HALB enthalten ist.
#define HALB(wert) ((wert) / 2)
Der Präprozessor ersetzt überall im Quelltext HALB durch den Ersatztext, in diesem Fall die Befehlsfolge (wert) / 2. Zudem wird zur Berechnung noch ein Wert als Parameter übergeben.
Wäre das eine Antwort um volle Punktzahl zu bekommen? Oder würdet ihr es noch verbessern/ergänzen?
Danke.
-
im_kevzor schrieb:
Zudem wird zur Berechnung noch ein Wert als Parameter übergeben.
Das musst du näher erläutern. Welche Berechnung? Parameter? Übergabe?
-
Der Präprozessor ersetzt überall im Quelltext HALB durch den Ersatztext, in diesem Fall die Befehlsfolge (wert) / 2.
Das ist schon falsch - die Klammern sind nicht überflüssig sondern äußerst wichtig. Vielleicht solltest du denen auch einen Satz widmen.Außerdem wird nicht jedes Vorkommen von
HALB
ersetzt, schließlich ist es ein funktionsähnliches Makro.PS: Das ein Wert übergeben wird ist prinzipiell nicht vorausgesetzt. Du kannst auch einen Typen übergeben und die entstehende Tokenfolge in ein Stringliteral umwandeln.
-
Danke für die Antworten.
Könntet ihr mir bitte eine korrekte Antwort nennen, die nicht all zu kompliziert formuliert ist.
-
Es werden sämtliche Vorkommen* des Musters
HALB(XXX)
durch den Text((XXX) / 2)
ersetzt.XXX
kann dabei eine (fast) beliebige Folge von Zeichen sein+.Das war's schon, mehr passiert da nicht.
*: Außerhalb von Zeichenkettenliteralen, anderen Präprozessoranweisungen, Kommentaren und noch ein paar weiteren Ausnahmen, die ich hier nicht alle aufzählen werde, da es nicht weiter wichtig ist.
+: Auch hier sind die genauen Regeln wohl kaum von Belang. Es ist im wesentlichen das, was man erwarten würde, also beispielsweise keine Kommas oder runden Klammern, weil es sonst aussehen würde, wie ein anderer Ausdruck.
-
Vielen Dank!!