Ich kompiliere mein Programm, das unter Linux GCC 4.4.1 C99 läuft.Unterschied zwischen #if definiert (WIN32) und #ifdef (WIN32)
Ich habe gerade meine #defines eingefügt, um den Code zu trennen, der auf Windows oder Linux kompiliert wird. Allerdings habe ich diesen Fehler bekommen.
error: macro names must be identifiers.
Mit diesem Code
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Allerdings, wenn ich an diese der Fehler behoben wurde geändert:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
ich nur mich gefragt, warum ich diesen Fehler habe und warum die #defines sind anders?
Vielen Dank,
ja, aber Sie könnten auch #ifdef UNIX mit #ifndef WIN32 kaskadieren und die gleiche Flexibilität (nicht so lesbar, stimme ich zu) – jpinto3912
@ jpinto3912 Aber das wird noch haariger mit '||' – Aidiakapi
Wenn nur sie nur hatten mit '#if defined (NAME)' von Anfang an weggegangen und vermieden haben, eine '# ifdef' Anweisung zu erstellen. – Andy