加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在windows和linux上编译

发布时间:2020-12-14 01:39:00 所属栏目:Windows 来源:网络整理
导读:我是c的新手,我已经给了一些源代码,别人写的是在 Windows上编译的. 在linux编译之后,我有错误,因为linux不支持DWORD,WORD和UINT32.我有6个文件例如. A.h,A.c,B.h,B.c,C.h,C.c.这些关键字在所有文件中. 所以我正在考虑2种可能的解决方案.哪个更好#define或typ
我是c的新手,我已经给了一些源代码,别人写的是在 Windows上编译的.

在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

非常感谢上述建议,

你自己找到了解决方案:
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif

将其放在一个单独的头文件(typedefs.h)中,并将其从任何位置加入. Typedef始终比预处理器宏更为重要.

我的建议:不要使用DWORD,WORD或其他Win32类型.我通常更喜欢使用C99标准类型:uint_t,int_t或uint16_t,uint32_t

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读