kompilowanie w systemie Windows i Linux
Jestem nowy w c, a niektórzy otrzymali kod źródłowy, który napisał ktoś inny, skompilowany w systemie Windows.
Po próbie kompilacji na Linuksie mam błędy, ponieważ Linux nie obsługuje DWORD, WORD i UINT32. Mam na przykład 6 plików. A.h, A.c, B.h, B.c, C.h, C.c. Te słowa kluczowe znajdują się we wszystkich plikach.
Myślę więc o 2 możliwych rozwiązaniach. Który jest lepszy #define lub 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
W drugiej części zastanawiam się, gdzie powinienem umieścić te deklaracje. Czy powinny one znajdować się w plikach nagłówkowych, czy powinny przechodzić do plików źródłowych?
Czy na przykład powinienem zrobić coś takiego w plikach nagłówkowych lub w plikach źródłowych?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
Wielkie dzięki za powyższe sugestie,