// Einbinden einer anderen Source-Datei #include <stdio.h> // definieren von Makros #define VERSION 1 #define SQUARE(_x) ((_x)*(_x)) // zuruecknehmen von Definitionen #undef VERSION // bedingte Codestellen mittels Praeprozessor-Direktiven #if #ifdef #ifndef #else #elif #endif // Bsp.: #if DEBUG >= 1 #define dbPrintf(_fh, _str) fprintf(_fh, _str) #else #define dbPrintf(_fh, _str) #endif #if (TYPE == 1) || (TYPE == 2) #define ... #endif // defines ueber mehrere Zeilen #define printXTimes(_str, _x) \ for (int i=0; i<_x; i++) \ { \ printf(_str); \ } // vordefinierte Makros // __LINE__ ... Ausgabe der aktuellen Zeile // __FILE__ ... Ausgabe des aktuellen Dateinamens // __DATE__ ... Ausgabe des aktuellen Datums // __TIME__ ... Ausgabe der aktuellen Zeit #define printWithDetails(_text) \ printf("Datei [%s], Zeile %d: %s\n", \ __FILE__, __LINE__, text) // Verhinderung von mehreren gleichen Einbindungen #ifndef TEST_H #define TEST_H // Header-Datei Source Code #endif // Veraenderung von Zeilennummerierungen #line 12 "file.h" // Praeprozessor Error Ausgabe #error "Version zu niedrig!" // Systemspezifische Optionen - Compiler Optionen aendern #pragma