Ich bin neu in c, und ich habe einige Quellcode, den jemand anderes geschrieben hat, die auf Windows kompiliert wurde gegeben.Kompilieren unter Windows und Linux
Nach dem Versuch, in machen kompilieren auf Linux ich Fehler, weil Linux nicht DWORD, WORD, UND UINT32 unterstützen. Ich habe zum Beispiel 6 Dateien. A.h, A.c., B.h., B.c., C.h., C.c. Diese Schlüsselwörter sind in allen Dateien enthalten.
Also denke ich über 2 mögliche Lösungen nach. Was ist besser #define oder typedef.
1)
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
2)
#define DWORD unsigned long
#define WORD unsigned short
#define UINT32 unsigned int
Für den zweiten Teil frage ich mich, wo soll ich diese Erklärungen stellen. Sollten sie in die Header-Dateien gehen, oder sollen sie in die Quelldateien gehen?
Zum Beispiel kann ich tun, so etwas wie dies in den Header-Dateien, oder in den Quelldateien?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
Vielen Dank für die oben genannten Vorschläge,
Beat mich dazu .. das ist, was ich für die langsame Eingabe –
erhalten Wenn Sie plattformübergreifende Kompilierbarkeit pflegen werden, möchten Sie es vielleicht einfach in eine Datei namens windows.h, die Sie in einem Standard-Speicherort, denn das ist die Datei unter Windows, die diese Deklarationen enthält. –
Wenn Maschine lang = 8 (64-Bit-Maschinen) hat, verwenden Sie typedef unsigned int DWORD. – Antarus