Tôi mới sử dụng c và tôi có một số mã được cung cấp một số mã nguồn mà người khác đã viết được biên dịch trên cửa sổ.biên dịch trên windows và linux
Sau khi cố gắng thực hiện biên dịch trên linux, tôi có lỗi vì linux không hỗ trợ DWORD, WORD và AND UINT32. Tôi có 6 tập tin ví dụ. A.h, A.c, B.h, B.c, C.h, C.c. Các từ khóa này nằm trong tất cả các tệp.
Vì vậy, tôi đang nghĩ đến 2 giải pháp khả thi. Tốt hơn là #define hoặc 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
Đối với phần thứ hai tôi tự hỏi nơi tôi nên đặt những tờ khai. Họ có nên đi trong các tập tin tiêu đề, hoặc họ nên đi trong các tập tin nguồn?
Ví dụ: tôi có nên làm điều gì đó như thế này trong tệp tiêu đề hoặc trong tệp nguồn không?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
Rất cám ơn những lời đề nghị trên,
Đánh bại tôi với nó .. thats những gì tôi nhận được cho gõ chậm –
Nếu bạn đang đi để duy trì nền tảng compilability, bạn có thể muốn chỉ cần đặt nó trong một tập tin có tên windows.h mà bạn giữ ở một vị trí tiêu chuẩn, vì đó là tệp trên các cửa sổ giúp bạn nhận được các khai báo đó. –
nếu máy có dài = 8 (64 bit máy), sử dụng typedef unsigned int DWORD. – Antarus