在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在OpenCV的同一窗口中显示多个(2,3,4,…)图像
- 正确的技术,从CMD.EXE中找到32和64位版本的Vista / Windows
- 未安装Server 2012 Server Core PowerShell
- Windows-10 – Windows 10中的IE 11和Edge不允许更改仅适用
- 什么是Windows最好的免费脚本化SFTP客户端?
- windows-server-2012 – 启动徽标后的Windows Server 2012r
- windows-xp – 如何禁用“您是否希望允许此网站在您的计算机
- windows – 如何从显示设备名称获取HMONITOR句柄?
- azure – Microsoft Graph REST API无效的客户端密钥
- 如何解决Windows 8游戏的触摸输入延迟?
推荐文章
站长推荐
- windows-runtime – Windows应用程序的捕获屏幕
- 无法为CurrentUser设置Powershell ExecutionPoli
- 如何使用WiX Burn智能安装.NET 4.x
- 相同的简单源代码,Windows上的不同二进制文件
- windows – 批处理文件中FOR / F和WMIC中何时以及
- windows-server-2008 – 企业Windows网络性能
- 从Windows 7命令行运行时,为什么我的C#程序会经常
- osx – 可以在Windows机器上运行VMWare Fusion映
- cmd – 如何记录Windows XP命令行应用程序中显示
- windows – 与同一用户的多个RDP连接
热点阅读