Hi oberallgeier,
schau dir das mal an:
In der stdio.h findest du unteranderem diese Zeile:Code:#define SetBit(ADDR,BIT) (ADDR |= (1<<BIT)) #define WasBinIch_1 42 #define WasBinIch_2 SetBit(PORTA,PA0) #define WasBinIch_3() SetBit(PORTA,PA1) void main() { int x = WasBinIch_1; // Hier ist klar, das du eine Variable/einen Wert verwendest WasBinIch_3(); // Hier ist klar, dass was passiert (es sieht wie ein Funktionsaufruf aus) WasBinIch_2; // Was ist das? // Geh' mal von einem Programm aus wo du grade in Zeile 1580 // ließt und nicht das #define-Statement im Blick hast ... ;-) }
"#define getchar() fgetc(stdin)", vermutlich aus den selben Gründen wie oben.
[EDIT] Kleiner Nachtrag: IBM schreibt hierzu: "An empty formal parameter list is legal: such a macro can be used to simulate a function that takes no arguments." http://publib.boulder.ibm.com/infoce...rc09cpxmac.htm
Wenn ich Zeit habe, bastel ich mal ein kleines Beispiel wie ich das mit den Structs meinte
-Crazy






Zitieren




Lesezeichen