Hallo BigRed!
Hi „Beast“ (netter nick),
Danke!
ehrlich? gcc unter linux fängt da schon an zu meckern:
#define LENGTH 100.123
…
char str[LENGTH];
Logisch, da: #define’s werden vom Präprozessor ersetzt (stures find & replace), in Deinem Fall kriegt der Compiler also hier von LENGTH gar nix mit, sondern regt sich (zu recht) über char str[100.123] auf.
Die Sache mit der Typprüfung meinte ich auch nicht so sehr für das konkrete Beispiel, sondern eher so als generellen Hint. Mit ein bisschen Mühe läßt sich da aber schon ein Beispiel finden, wo Du definitiv ungewollt comiplierbaren Code generierst.
Wenn man nämlich z.B. mit Konstanten zu rechnen beginnt, dann bringt Dich die automatische Typumwandlung von C ziemlich bald um.
Ganz extremen Spaß hatte ich schon mit Makro-defines, weil nämlich in irgendeiner dämlichen Windows-Header Datei ein #define FindWindow FindWindowA drinnen steht. DEN unresolved external hab’ ich lange gesucht *g*.
Gruß,
TheBeast (der übrigens auch Martin heißt)