根据系统动态判断整数类型(c++)

2023-12-31

我正在编写一个程序,以每 32 位(即一次 4 个字节)为单位将数据存储到文件中。我在64位Windows系统中编写代码,但我使用的编译器是32位(mingw32)。在当前系统中,int和long的大小是相同的,都是32位(4字节)。我目前正在通过使用 g++ 重新编译(不更改代码)将代码移植到其他系统。但是,我发现 int 或 long 的大小是不同的,并且取决于系统。有什么方法(比如在头文件中使用宏)来确定整数的大小,从而决定是否应使用 int 或 long 作为代码中的数据类型?我必须在4种不同类型的系统中重新编译代码,如果我修改代码为每个系统有4个不同的副本,那真的很头痛。


您想要做的是使用标准类型,例如int32_t。该类型始终为 32 位。我目前在可移植数据库(berkeley db)中使用这些类型以实现跨系统兼容性。

See here http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html对于他们所有人。

包含 stdint.h 来获取这些定义。

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

根据系统动态判断整数类型(c++) 的相关文章

随机推荐

  • 如何使用 Ping.SendAsync 与 datagridview 配合使用?

    我有一个应用程序 它会 ping datagridview 中的每个 IP 以便编译响应 IP RoundtripTime 的列表 完成该步骤后 我会将 RoundtripTime 推回 datagridview foreach DataG
  • 在数组映射中转换某些属性名称的优雅方法

    认为 let A x x y y x x y y 我知道我可以将这个数组转换为一个新数组 并重命名y像这样的财产 A map o gt v o y v y v y 我可以使用扩展来获取所有现有属性以及一个新的 经过转换的属性 如下所示 A
  • Yii Booster 日期选择器无法正常工作

    我有一个与 Yii booster datepicker 相关的问题 设想 p class help block Fields with span class required span are required p
  • 如何避免 C++ 中两个库的变量/函数冲突

    我有类似的情况 如下所述 我有一个头文件first h它有一个功能 char getName 以及相关的cpp文件first cpp有函数定义 char getName return first 和第二个头文件 secondary h 它具
  • Xcode 持续集成:未找到配置的目标

    我已将本地存储库克隆到 Xcode 服务器 并创建了一个机器人来在每次提交时运行测试 但在集成时 它给出了构建服务问题 不再支持或找不到配置的目标 我也无法从日志中找到任何错误 Oct 19 12 32 08 1397
  • 如何查找字符串中的循环/重复?

    我需要检测字符串中的循环 序列并返回第一次出现的位置 我应该怎样去做呢 例子 2 0 5 3 1 5 3 1 5 3 1 第一个发生的序列是5 3 1 没有规则 例如 序列可以是字符串长度的一半 5 3123 1231 231 31 231
  • 从 R 中的嵌套列表中提取内容

    我将客户数据存储在 R 中的嵌套列表中 其方式与此相同 myinventedlist lt list LOLETE list Name LOLETE location Huelva Employees 22 SM eJeK1 Groups
  • Keras 不使用 Theano

    1 我创建一个虚拟环境 mkvirtualenv kerasTH 2 我使用安装keraspip install keras 3 这就是输出pip list Package Version h5py 2 10 0 joblib 0 16 0
  • 如何在 Andengine Base 游戏活动中使用比率分辨率策略时覆盖 onSetContentView

    我正在开发 学习构建 一款游戏andengine GLES2 我在用基础游戏活动 并且我覆盖了setContent查看放置我的 admob 广告的视图 除了解决政策之外 一切都正常 比率决议政策是我正在使用的那个CAMERA WIDTH 8
  • gdb:退出程序而不退出gdb

    我正在使用 gdb 调试程序 首先 我load我的可执行文件 然后我continue运行程序 我有时想中断程序的执行 所以我这样做Ctrl C 我的问题是这关闭了both我的程序和gdb 如何在不退出 gdb 的情况下退出程序 您是否尝试过
  • rufus 调度程序未在生产中运行

    我有一个在 nginx 和乘客下运行的 Rails 服务器 我的sheduler rb看起来像这样 require rufus scheduler my awesome job Rufus Scheduler new my awesome
  • 有没有办法在结果查询中显示“是”或“否”而不是 0 或 1? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个查询 当我选择一行且一列为 0 时 它显示 否 如果为 1 则显示 是 这是一个示例表 SELECT FROM NUMBERS RESULT PRODUCT HAS APPLES 0 GRAPE
  • 当2的幂时如何将除法变成按位移位?

    我有以下需要经常做的划分 int index pos 64 在 CPU 级别 除法可能会很昂贵 我希望有一种方法可以通过按位移位来做到这一点 我还想了解如何从除法到移位 换句话说 我不想只记住按位表达式 int index pos gt g
  • 重命名后项目崩溃

    如果我在 XCode 中的导航器视图中更改 iOS 项目的名称 Xcode 4 中的 Project gt Rename 相当于什么 https stackoverflow com questions 6077876 what is the
  • 如何使用 jQuery animate() 方法使 div 左右移动?

    请看一下这个 http jsfiddle net tmPfV http jsfiddle net tmPfV 如果您单击右侧 则该框将向右移动 如果您单击左侧 则该框将向左移动 但是 如果您再次单击右键 则什么也没有 我怎样才能让它左右移动
  • 尝试解码数据(将 Abs 导出到 MySQL)

    我有数据库表 DROP TABLE translation en lt CREATE TABLE translation en lt id INTEGER lt translation WIDEMEMO BLOBBlockSize 1024
  • 如何使用 Log4j 和 Storm Framework 将日志写入文件?

    我在 Storm 中使用 log4j 记录到文件时遇到了一些问题 在提交我的拓扑之前 即在我的主要方法中 我编写了一些日志语句并使用以下方法配置了记录器 PropertyConfigurator configure myLog4jPrope
  • 组装键盘IO口

    我看过以下内容topic https stackoverflow com questions 219120 x86 assembly protected mode keyboard access 我有兴趣通过 IN OUT 指令联系键盘并设
  • Spring Web Flow - 如何使用对话范围中已有的值设置单元测试?

    我正在开发一个使用 Spring Web Flow 2 0 的项目 我正在尝试对从决策状态开始的流程进行单元测试 决策状态检查位于conversationScope 我不知道如何将值插入到conversationScope用于单元测试 我努
  • 根据系统动态判断整数类型(c++)

    我正在编写一个程序 以每 32 位 即一次 4 个字节 为单位将数据存储到文件中 我在64位Windows系统中编写代码 但我使用的编译器是32位 mingw32 在当前系统中 int和long的大小是相同的 都是32位 4字节 我目前正在