我是c新手,我已經給了一些其他人編寫的在Windows上編譯的源代碼。在windows和linux上編譯
在嘗試在Linux上編譯後,我有錯誤,因爲Linux不支持DWORD,WORD和UINT32。例如,我有6個文件。 A.h,A.c,B.h,B.c,C.h,C.c.這些關鍵字在所有文件中。
所以我想到2種可能的解決方案。哪個更好#define或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
對於第二部分,我想知道我應該在哪裏把這些聲明。它們應該放在頭文件中,還是放在源文件中?
例如,我應該在頭文件還是源文件中做這樣的事情?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
非常感謝上述建議,
打我吧..多數民衆贊成我得到的打字很慢 – 2009-07-20 15:03:56
如果你要保持跨平臺編譯能力,你可能只想把它放在一個名爲windows.h文件,你保持在一個標準的位置,因爲這是Windows上的文件,可以讓你獲得這些聲明。 – 2009-07-20 15:08:23