Handbuch zur dynamischen Ablaufverfolgung in Solaris

Einsatz des C-Preprozessors

Die Programmiersprache C, in der die Solaris-Systemschnittstellen definiert sind, umfasst einen Preprozessor, der einige Anfangsschritte bei der C-Programmkompilierung durchführt. Der C-Preprozessor wird in der Regel zum Definieren von Makroersetzungen, bei denen ein Symbol (Token) in einem C-Programm durch einen vordefinierten Satz anderer Symbole ersetzt wird, oder zum Anlegen von Kopien der Systemdefinitionsdateien verwendet. Wenn Sie den C-Preprozessor in Verbindung mit den D-Programmen verwenden möchten, geben Sie die dtrace-Option -C an. Diese Option bewirkt, dass dtrace zuerst den cpp(1)-Preprozessor auf Ihrer Programmquelldatei ausführt und die Ergebnisse dann an den D-Compiler weiterleitet. Eine ausführlichere Beschreibung des C-Preprozessors finden Sie in Programmieren in C.

Der D-Compiler lädt die C-Typbeschreibungen für die entsprechende Betriebssystemimplementierung zwar automatisch ein, doch mit dem Preprozessor haben Sie die Möglichkeit, weitere Typdefinitionen wie zum Beispiel Typen aus eigenen C-Programmen einzubinden. Der Preprozessor bietet sich auch für andere Vorgänge wie etwa die Erstellung von Makros an, die sich durch D-Codechunks und andere Programmelemente ersetzen lassen. Wenn Sie den Preprozessor für ein D-Programm verwenden, dürfen Sie nur Dateien mit gültigen D-Deklarationen aufnehmen. Typische C-Definitionsdateien laden nur externe Deklarationen von Typen und Symbolen, die der D-Compiler fehlerfrei interpretiert. Der D-Compiler kann C-Definitionsdateien mit zusätzlichen Programmelementen wie C-Funktionsquellcode nicht analysieren und generiert in diesen Fällen eine entsprechende Fehlermeldung.