【发布时间】:2010-11-12 08:24:37
【问题描述】:
我是 c 新手,我得到了一些其他人编写的在 Windows 上编译的源代码。
尝试在 linux 上编译后出现错误,因为 linux 不支持 DWORD、WORD 和 UINT32。例如,我有 6 个文件。啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。”这些关键字在所有文件中。
所以我正在考虑两种可能的解决方案。 #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
非常感谢以上建议,
【问题讨论】:
标签: c