在windows和linux上编译

2024-01-07

我是c语言的新手,有些人给了我一些其他人编写的在windows上编译的源代码。

尝试在 linux 上编译后出现错误,因为 linux 不支持 DWORD、WORD 和 UINT32。例如我有6个文件。 A.h、A.c、B.h、B.c、C.h、C.c。这些关键字存在于所有文件中。

所以我正在考虑两种可能的解决方案。 #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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在windows和linux上编译 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • 如何在屏幕上显示PIL图像?

    我正在使用 PIL 库进行一些图像编辑 关键是 我不想每次都将图像保存在硬盘上以便在资源管理器中查看 是否有一个小模块可以让我简单地设置一个窗口并显示图像 从接近年初开始PIL教程 https web archive org web 202
  • 导入酶后加载模块 DomUtils 时出现 Webpack 错误

    我有一个使用 TypeScript 和 React 0 14 的项目 我用 karma mocha chai 设置了测试环境 以及它的工作 但是当我导入并使用酶中的函数时 我在浏览器中收到错误 来自 Chrome 的人类可读错误 Uncau
  • 将 ipad 应用程序转换为在 iPhone 上运行(通用应用程序)

    我有一个可以运行的 iPad 应用程序 现在需要在 iPhone 上运行它 我已经阅读了相当多的内容 但还没有找到一个好的答案 在这个网站上 我看到了一些讨论 但同样没有明确的答案 有谁知道有什么教程吗 我已经在我的代码中捕获了它是否是 i
  • 如何更改Flutter应用程序的名称?

    我刚刚按照以下说明制作了一个 Flutter 应用程序这一页 https codelabs developers google com codelabs first flutter app pt2 0 我用谷歌搜索了如何更改应用程序的名称
  • Java迭代固定长度的数组并使用Scanner类获取值

    如何使用固定长度为 2 的 Scanner 类获取 java 数组的值 并且它将迭代直到其值等于给定值 例如 对于以下输入 A G N H D F 我使用 Scanner 类编写了一个 for 循环来获取固定数组 road 的值 其中长度为
  • logcat 中的 Android SELinux 错误

    我的 logcat 中不断出现这些奇怪的错误 我不仅不知道它们的含义 而且不知道是什么原因造成的 它们在我的应用程序首次启动时出现 gt E SELinux 8163 Function selinux android load priori
  • SHA-1 哈希值可以全零吗?

    是否有任何输入 SHA 1 将计算为四十个零的十六进制值 即 0000000000000000000000000000000000000000 是的 这几乎是不可能的 IE 2 160 分之一 即 0 0000000000000000000
  • 如何使用 XSLT v1.0 而不是使用 XSLT v2.0 正则表达式插入文本?

    我有一个 xml 文件 它描述 除其他外 具有描述完全限定 java 类名的属性值的元素 我正在尝试编写一个 XSLT 转换来修改此文件中描述的类名 以便 例如 出现com example MyClass会变成com example Moc
  • 为什么 RichTextBox 在文档开始之前总是包含额外的字符?

    我从一个空白的 RichTextBox 开始
  • 使用 Java 进行音频混合(没有 Mixer API)

    我正在尝试混合几种不同的音频流并尝试让它们同时播放代替一次一个 下面的代码一次播放一个 我无法找出不使用 Java Mixer API 的解决方案 不幸的是 我的声卡不支持使用 Mixer API 进行同步 我被迫找出一种通过代码来实现同步
  • ASP.NET 用户控件和 jQuery 对话框

    在我的页面上 我得到了以下用户控件 div class editFormDialog style display none font size 12px div
  • searchkick 索引相关模型字段

    我有一个 Rails 应用程序 我正在从 Sphinx 切换到 ElasticSearch 并使用 gem searchkick 我有一个模型教师和一个模型标签 通过 gem 其中教师可以关联多个标签 在教师模型中 我定义了这样的索引 de
  • Razor MVC 3 RC2 - 带有动态文本的 WebGrid Actionlink

    我正在 WebGrid 中输出带有动态链接文本的 Actionlink 我可以让它工作的唯一方法如下 Grid Column header Subject columnName Message Subject format item gt
  • 在 T O 重写函数中,如何取回它?

    我在 R 会话中做了一些愚蠢的事情 我写 打印 假 现在我无法打印东西 打印 1 错误 我该如何取回它 rm不会删除基础对象 因此您只需运行 rm print 有趣的是 你can打印东西 gt print lt FALSE gt print
  • 根据到期时间获取行

    http sqlfiddle com 9 406cb 2 http sqlfiddle com 9 406cb 2 我有一本分类为 1 2 3 4 的表格书 第 1 类 将停留 1 小时 第 2 类 将停留 2 小时 第 3 类 将停留 4
  • 为tableView注册nib名称

    static NSString cellIdentifier cell if tableView tableview1 ContactCustom cell1 ContactCustom tableView dequeueReusableC
  • 当我在 Unix 中调用 fork() 时会发生什么?

    我试图查找这一点 但在调用 fork 后 我很难理解父进程和子进程之间的关系 它们是完全独立的进程 仅通过 id parent id 关联吗 或者他们共享记忆吗 例如每个进程的 代码 部分 是重复的这样每个进程都有自己相同的副本 或者以某种
  • 使用python将mysql查询写入csv,需要显示字段名称

    我有以下内容 import MySQLdb as dbapi import sys import csv dbServer localhost dbPass supersecretpassword dbSchema dbTest dbUse
  • 获取具有匹配计数条件的嵌套对象的文档

    我是一个 mongo 菜鸟 正在使用 mongo 集合 其记录如下所示 cats name fluffy color red name snowball color white 我想执行一个查询来获取包含超过 1 只白猫的所有记录 MapR
  • 在windows和linux上编译

    我是c语言的新手 有些人给了我一些其他人编写的在windows上编译的源代码 尝试在 linux 上编译后出现错误 因为 linux 不支持 DWORD WORD 和 UINT32 例如我有6个文件 A h A c B h B c C h