宏定义确定大端还是小端机?

2024-04-17

是否有一行宏定义来确定机器的字节顺序?我正在使用以下代码,但将其转换为宏会太长:

unsigned char test_endian( void )
{
    int test_var = 1;
    unsigned char *test_endian = (unsigned char*)&test_var;

    return (test_endian[0] == 0);
}

支持任意字节顺序的代码,准备放入名为的文件中order32.h:

#ifndef ORDER32_H
#define ORDER32_H

#include <limits.h>
#include <stdint.h>

#if CHAR_BIT != 8
#error "unsupported char size"
#endif

enum
{
    O32_LITTLE_ENDIAN = 0x03020100ul,
    O32_BIG_ENDIAN = 0x00010203ul,
    O32_PDP_ENDIAN = 0x01000302ul,      /* DEC PDP-11 (aka ENDIAN_LITTLE_WORD) */
    O32_HONEYWELL_ENDIAN = 0x02030001ul /* Honeywell 316 (aka ENDIAN_BIG_WORD) */
};

static const union { unsigned char bytes[4]; uint32_t value; } o32_host_order =
    { { 0, 1, 2, 3 } };

#define O32_HOST_ORDER (o32_host_order.value)

#endif

您可以通过以下方式检查小端系统

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

宏定义确定大端还是小端机? 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 有没有办法将应用程序覆盖在全屏程序上?

    我希望开发一个应用程序 它本质上是一个计时器窗口 它始终显示在任何其他应用程序前面的屏幕上 并且在聚焦其他窗口时永远不会落入背景 一个例子是 当我玩全屏游戏时 我希望这个计时器覆盖游戏 并且当我单击窗口上的计时器按钮时 它不会关闭游戏 我有
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • Google crashpad 上的一个交叉编译平台应用程序。 Ubuntu 中无法读取 dmp 文件

    我有一个小qt项目 https github com apalomer qt crashpad test我想跟踪一个分段错误 这是一个示例 分段错误是出于测试目的而手动添加的 在实际项目中我不知道留在那里的分段错误 我决定使用 google
  • 如何在 Windows Phone 7 的列表框中应用备用行样式

    您好 我是 Windows Phone 7 的新手 我在将样式应用于 Windows Phone 7 列表框中的交替行颜色时遇到问题 请帮助我 虽然 WPF 有一个ALternationCount支持这一点的属性 Silverlight 无
  • 如何使用 Jetpack Compose 显示在单击按钮时隐藏的 IconButton?

    我在我的ViewModel类 一个State对象的默认值为false var menuState mutableStateOf false 现在我想显示IconButton根据 的值menuState setContent Scaffold
  • 使用 numpy nan 查找列表的最大值[重复]

    这个问题在这里已经有答案了 import numpy as np print max np nan 1 2 3 4 print max 1 2 3 4 np nan print max 1 2 3 np nan 4 第一个将打印 nan 作
  • 物理地址、设备地址和虚拟地址的区别

    有什么区别设备地址 实际地址 and 虚拟地址 其实我正在努力mmap在驱动程序中 我一直坚持这个概念 The 文档 https www kernel org doc Documentation DMA API HOWTO txt says
  • 无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 错误的构造函数

    我不是 hibernate 的频繁用户 我正在尝试创建多对一映射 但出现错误 主题 我一直在寻找类声明中的错误 还有 getter 最后一个错误 但一切似乎都是正确的 有人看到我的代码中有任何错误吗 因为我无法弄清楚 地址 java pac
  • 从环境中检索“一周的第一天”和“CalendarWeekRule”

    我认为这应该很容易 但我自己 还 找不到它 我需要知道是否可以从系统环境和 或本地设置中检索这两个值 我知道在我的国家 荷兰 这些价值观应该是 每周第一天 星期一 日历周规则 FirstFullWeek 但我不想为此设定固定的规则 您可以从
  • 使用 WinForms TreeView 递归目录列表?

    我想制作一个树视图 显示系统上的所有文件夹 并且仅显示音乐文件 例如 mp3 aiff wav 等 我记得读到我需要使用递归函数或类似的东西 通常大多数计算机都有数千个文件夹和数十万个文件 因此递归地在 TreeView 中显示所有这些文件
  • D3 V6 - 缩放和拖动功能

    在 Angular 7 中使用 D3 v6 创建世界地图 Choropleth 从 Angular 精简为纯 JavaScript 从 NaturalEarth 收集并在 mapshaper 中编译的形状文件以创建 GeoJSON 只对国家
  • jQuery-UI 主题 - CSS 大小差异

    当使用jQueryUI http www jqueryui com home网站上的示例 主题浏览器 http www jqueryui com themeroller 事情看起来很棒 但是 当我将代码和主题放入我的应用程序中时 大小调整完
  • Tornado with_timeout 正确用法

    我有一个运行一些 shell 命令的网络服务器 该命令通常需要几秒钟 但在某些情况下需要更多时间 在这种情况下客户端 不是网络浏览器或curl 会断开连接 我无法修复客户端 所以我考虑修复服务器 它基于龙卷风框架 我使用tornado ge
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • Easy Tracker 中的 Google 分析自定义屏幕名称

    我有一个具有重用活动的应用程序 它用于不同的目的 因此仅跟踪活动名称对我没有帮助 这就是为什么我想在仍然使用 EasyTracker 的同时手动定义屏幕名称 我的代码如下所示 EasyTracker t EasyTracker getIns
  • Python:找到出现次数最多的单词?

    我试图让我的程序报告文本文件中出现最多的单词 例如 如果我输入 你好 我喜欢馅饼 因为它们非常好吃 程序应该打印出 最喜欢的馅饼 执行选项 3 时出现此错误 KeyError h Prompt the user to enter a blo
  • chrome 扩展,弹出窗口的高度

    在我看来 弹出窗口的高度有 489 像素的限制 如果我将弹出窗口的主体元素设置为 600 像素的高度 则弹出窗口将获得一个滚动条 因为内部页面变大 但弹出窗口不会更改其大小 是否可以使弹出窗口的高度大于 489 像素 Set height两
  • 在 iOS 12 中以编程方式从屏幕时间获取应用程序使用情况

    我正在开发一个项目 我想获得其他应用程序的使用时间 苹果发布了iOS 12并提供了新功能Screen Time 我想知道Apple是否提供任何方式或API来从中获取数据 不可以 在 iOS 上 每个应用程序都在自己的沙箱中运行 无法查看其他
  • 在 Angular 4 中使用权限的最佳方式是什么?

    在我的 Angular 4 项目中 我想使用从 API 获得的权限 权限保存为带有 ids 的数组 某些单个元素 例如用户或博客文章 具有允许权限的属性 这些属性允许或不允许编辑或删除等操作 作为带有 id 的数组 在 Angular 4
  • CruiseControl.Net + SSL

    因此 我刚刚在我的 PC 上安装了 Cruisecontrol NET 并且使用 VisualSVN 通过 https 和 虚拟 证书进行 SVN 托管 所有这些都在我的本地电脑上 问题是 当我尝试运行 Cruisecontrol NET
  • 如何在页面加载时将页面滚动到底部?

    要求 我想在页面加载时将内容滚动到页面底部 这是我的 html 代码
  • 宏定义确定大端还是小端机?

    是否有一行宏定义来确定机器的字节顺序 我正在使用以下代码 但将其转换为宏会太长 unsigned char test endian void int test var 1 unsigned char test endian unsigned