diff options
Diffstat (limited to 'documentation/c_tutorial/praeprozessor_direktiven')
-rw-r--r-- | documentation/c_tutorial/praeprozessor_direktiven | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/documentation/c_tutorial/praeprozessor_direktiven b/documentation/c_tutorial/praeprozessor_direktiven deleted file mode 100644 index ba0c01d..0000000 --- a/documentation/c_tutorial/praeprozessor_direktiven +++ /dev/null @@ -1,90 +0,0 @@ -#DEFINE ---------- - -zb um parametrisierte Makros zu schreiben: - -#define MAX(x,y) ( (x)<=(y) ?(y) :(x) ) - ----beachte, dass x und y auch in der Funktion in Klammern stehen müssen. -Beim Aufruf braucht man kein Emikolon am Ende, es ist aber auch nicht falsch - -#define TAUSCHE(x,y) { \ - int j; \ - j=x; x=y; y=j; \ - } - -Bedenke, dass der Präprozessor das Makro ersetzt. Zu lange Ausdrücke blähen den Code unnötig auf. Statt dessen sollte man manchmal lieber eine Funktion benutzen. - -Die define-Direktive ist im Übrigen eine rein für die Programmiersprache C gedachte Direktive. Ein reiner C++-Compiler wird define deshalb nicht erkennen und kompilieren. Die meisten Compiler kennen aber sowohl C als auch C++. - -Der Geltungsbereich von symbolischen Konstanten bzw. Makros reicht vom Punkt der Deklaration mit #define bis zur Aufhebung mit #undef. Die Aufhebung mittels #undef ist aber optional. Wird #undef nicht verwendet, reicht der Geltungsbereich bis zum Dateiende. - -#ifndef __STDIO_H - #define __STDIO_H -#endif - --------------- -#define FERTIG - -int main(void) { - printf("Programmstart!\n"); - -#ifdef FERTIG - #error "Das Programm ist noch nicht fertig gestellt!!\n" Kompilererror. Das Programm lässt sichn nicht übersetzen -#endif - - -BEDINGTE KOMPILIERUNG UND VORDEFINIERTE MAKROS ------------------------------------------------ -__LINE__ Zeilennummer innerhalb der aktuellen Quellcodedatei -__FILE__ Name der aktuellen Quellcodedatei -__DATE__ Datum, wann das Programm compiliert wurde (als Zeichenkette) -__TIME__ Uhrzeit, wann das Programm compiliert wurde (als Zeichenkette) -__STDC__ Liefert eine 1, wenn sich der Compiler nach dem Standard-C richtet. -__STDC_VERSION__ Liefert die Zahl 199409L, wenn sich der Compiler nach dem C95-Standard richtet; die Zahl 199901L, wenn sich der Compiler nach dem C99-Standard richtet. Ansonsten ist dieses Makro nicht definiert. - -Vordefiniertes Makro Compiler -_MSC_VER Microsoft C ab Version 6.0 -_QC Microsoft Quick C ab Version 2.51 -__TURBOC__ Borland Turbo C, Turbo C++ und BC++ -__BORLANDC__ Borland C++ -__ZTC__ Zortech C und C++ -__SC__ Symantec C++ -__WATCOMC__ WATCOM C -__GNUC__ GNU C -__EMX__ Emx GNU C - -Vordefiniertes Makro Betriebssystem -__unix__ UNIX-System -__unix UNIX-System -__MS_DOS__ MS-DOS -__WIN32__ MS Windows ab 95 -__OS2__ OS2 -_Windows Zielsystem MS Windows -__NT__ MS Windows NT -__linux__ Linux-System -__FreeBSD__ FreeBSD -__OpenBSD__ OpenBSD -_SGI_SOURCE SGI-IRIX mit Extension *.sgi -_MIPS_ISA SGI-IRIX -__hpux HP-UX - - -#ifdef symbol -#ifdef ( symbol ) - -#elif symbol -#elif ( symbol ) - -#else - -#endif - -Gute Möglichkeit zum Debuggen: - __func__ gibt den Namen der aktuellen Funktion aus -void eine_funktion(void) { - printf("Name der Funktion: %s\n",__func__); -} - - - -__________________________________________________________________________________________ |