| Ü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 oder#if
 verwendet werden.#elif
 |  
                                                                                            | #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 |  |  
                                                                                            | # 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 | //Gibt "Dieser Text steht in Zeile 12345 in Datei Neuer_Dateiname.c" aus.#line 12345 "Neuer_Dateiname.c" printf("Dieser Text steht in Zeile %d in Datei %s. \n", __LINE__, __FILE__);
 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