Übersicht#include | Fügt Text aus einer anderen Quelltextdatei ein. | #define | Definiert ein Makro | #undef | Entfernt ein Makro | #if | Bedingte Compilierung in Abhängigkeit der nachstehenden Bedingung | #elif2 | Alternative Compilierung in Abhängigkeit der nachstehenden Bedingung, wenn die Bedingung des vorstehenden #if , #elif , #ifdef oder #ifndef nicht erfüllt ist. (Also wie else if). | defined1 | Liefert eine 1, wenn der nachstehende Makroname definiert ist, sonst eine 0. Kann nur zusammen mit #if oder #elif verwendet werden. | #ifdef | Bedingte Compilierung in Abhängigkeit, ob ein Makroname definiert ist. | #ifndef | Bedingte Compilierung in Abhängigkeit, ob ein Makroname nicht definiert ist. | #else | Alternative Compilierung, wenn die Bedingung des vorstehenden #if , #elif , #ifdef oder #ifndef nicht erfüllt ist | #endif | Beendet den Block mit der bedingten Compilierung | #line | Liefert eine Zeilennummer für Compilermeldungen | #operator1 | Ersetzt innerhalb eines Makros einen Makroparameter durch eine konstante Zeichenkette, die den Wert des Parameters enthält. | ## operator1 | Erzeugt ein einzelnes Token aus zwei hintereinander stehenden Tokens. | #pragma1 | Gibt Compiler- und Systemabhängige Informationen an den Compiler | #error1,3 | Erzeugt einen Fehler während der Compilierung mit der angegebenen Fehlermeldung. |
1 Neu in C99.
2 Gehört nicht zum Standard-C, obwohl es von vielen Compilern unterstützt wird.
3#pragma Befehle können nur entweder in der obersten Ebene vor der ersten Deklaration oder innerhalb eines Blockes vor der ersten Deklaration eingesetzt werden!
Vordefinierte Makros__LINE__ | Zeilennummer innerhalb der aktuellen Quellcodedatei | __FILE__ | Name der aktuellen Quellcodedatei | __DATE__ | Datum, wann das Programm kompiliert wurde (als Zeichenkette) | __TIME__ | Uhrzeit, wann das Programm kompiliert wurde (als Zeichenkette) | __STDC__ | Liefert eine 1, wenn sich der Compiler nach Standard-C richtet | __STDC_VERSION__ | Liefert die Zahl 199409L, wenn sich der Compiler nach C95 richtet 1999901L, wenn sich der Compiler nach C99 richtet sonst ist dieses Makro nicht definiert | Betriebssystemabhängige vordefinierte Makros | __unix__ | UNIX System | __unix | UNIX System | __WIN32__ | MS Windows ab 95 | _Windows | Zielsystem MS Windows | __linux__ | Linux-System | __FreeBSD__ | FreeBSD | __OpenBSD__ | OpenBSD |
| | Einfügen und Definieren (Textersetzungen)#include | #include <stdio.h> //Aus Includeverzeichnis #include "projekt.h" //Aus akt. Verzeichnis
| #define | #define PI 3.14159265 int mailn() { printf("PI = %f\n", PI); return 0 } //Ersetzt das PI im Queltext durch 3.14159265
| #undef | #undef PI
| # operator | #define Makro(a) printf(#a) //ersetzt bspw. Makro(7); //durch: printf("7");
| ## Operator | #define Makro(i) temp ## i int temp1, temp2; Makro(1) = 5; //Wird zu temp1 = 5;
|
Bedingte Kompilierung#if | #if defined PI //Kompiliert diesen Bereich nur, wenn PI definiert wurde. #endif #if _Windows //Kompiliert diesen Bereich nur in Windows. #endif
| #ifndef | #ifndef projekt_h //Kompiliert diesen Bereich nur, wenn projekt_h noch nicht definiert wurde #endif
| #ifdef | #ifdef projekt_h //Kompiliert diesen Bereich nur, wenn projekt_h definiert wurde #endif
| #else | #ifdef DEBUG //Kompiliert diesen Bereich nur, wenn DEBUG definiert wurde #else //Ansonsten wird dieser Bereich kompiliert #endif
|
#endif muss am Ende von jedem Bedingungsblock stehen!
Compilerbezogene Befehle#line | #line 12345 "Neuer_Dateiname.c" printf("Dieser Text steht in Zeile %d in Datei %s. \n", __LINE__, __FILE__); //Gibt "Dieser Text steht in Zeile 12345 in Datei Neuer_Dateiname.c" aus. Egal in welcher Datei und welcher Zeile der Code wirklich steht.
| #pragma | #pragma FENV_ACCESS ON //Weist den Compiler an, beim Kompilieren Überwachungen & Exceptions rund um Fließkomma-Arithmetik einzubauen.
| #error | #ifndef Labelname #error Labelname ist nicht definiert! #endif
//Gibt einen Compilerfehler aus, wenn Labelname nicht definiert wurde.
|
#pragma Befehle können nur entweder in der obersten Ebene vor der ersten Deklaration oder innerhalb eines Blockes vor der ersten Deklaration eingesetzt werden!
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by TimSch