summaryrefslogtreecommitdiffstats
path: root/documentation/c_tutorial/praeprozessor_direktiven
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/c_tutorial/praeprozessor_direktiven')
-rw-r--r--documentation/c_tutorial/praeprozessor_direktiven90
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__);
-}
-
-
-
-__________________________________________________________________________________________