Hallo Gerhard,
#define funktioniert eigentlich wie "Suchen und Ersetzen" in der Textverarbeitung!
Und da #define zum Pre-Processor gehört, wird dies ausgeführt bevor der Compiler anfängt zu Übersetzen.
Deshalb muss man bei gewissen Dingen dann etwas aufpassen
#define BufferSize 10+1
int a[BufferSize]; // ergibt ein Array mit 11 int
int a[BufferSize * 3]; // ergibt ein Array mit 13 int !!! und nicht wie erwartet 33.
Nach dem Pre-Processor sieht das folgendermassen aus:
int a[10 + 1 * 3]; // und dies ergibt aber 10 + 3 = 13
Mit
#define BufferSize (10+1)
funktioniert es dann richtig!
int a[(10 + 1) * 3];
MfG Peter(TOO)
Lesezeichen