FSST - Hardwarenahe Programmierung
Praeprozessor Direktiven
Präprozessor-Direktiven werden vom Präprozessor bearbeitet; z.B. #include fügt die angegebene Datei an der entsprechenden Position ein:
#include "mbed.h"
Weitere Aufgaben sind z.B. symbolische Konstante und Makros zu definieren mit #define
#define RTC8563_ADR 0xA2
Der Präprozessor durchsucht den Quelltext und ersetzt überall, wo RTC8563_ADR vorkommt, RTC8563_ADR durch den Ersatztext (0xA2). Beachte: Kein "=" und kein ";"
BESSER: Benannte Konstante verwenden, da der Compiler diese überprüfen kann:
const int RTC8563_ADR = 0xA2;
Um Teile des Quelltextes während des Compilierens zu selektieren (#ifdef / #if !defined bzw. #ifndef).
#if !defined (_CONST_H) #define _CONST_H const int RTC8563_ADR = 0xA2; #endif
ODER:
#ifndef _CONST_H #define _CONST_H const int RTC8563_ADR = 0xA2; #endif
Diese Direktiven werden eingesetzt, um zu überprüfen, ob ein Symbol zuvor schon mit #define definiert wurde. Ist _CONST_H definiert, liefert diese Direktivet 1 zurück, ansonsten 0. Abgeschlossen wird eine bedingte Übersetzung mit der Direktive #endif. Somit würde der obigen Code, nur einmal im Projekt eingebunden werden, was auch an anderer Stelle (z.B. Klassendeklaration) notwendig ist, da sonst Compiler-Fehler auftreten könnten: