在单个结构中处理不同的数据类型

2023-12-15

我需要发送一些有关 VxWorks 消息队列的信息。要发送的信息是在运行时决定的,并且可以是不同的数据类型。我正在为此使用一个结构 -

struct structData
{
  char m_chType;    // variable to indicate the data type - long, float or string
  long m_lData;     // variable to hold long value
  float m_fData;    // variable to hold float value
  string m_strData; // variable to hold string value
};

我当前正在通过消息队列发送 structData 数组。

structData arrStruct[MAX_SIZE];

这里的问题是,结构中一次只有一个变量有用,其他两个没有用。因此,消息队列不必要地超载。 我无法使用联合,因为数据类型和值是必需的。 我尝试使用模板,但它不能解决问题。我一次只能发送一种数据类型的结构数组。

template <typename T>
struct structData
{
  char m_chType;
  T m_Data;
}

structData<int> arrStruct[MAX_SIZE];

是否有保存此类信息的标准方法?


我不明白为什么你不能使用工会。这是标准方式:

struct structData
{
  char m_chType;    // variable to indicate the data type - long, float or string
  union
  {
    long m_lData;         // variable to hold long value
    float m_fData;    // variable to hold float value
    char *m_strData; // variable to hold string value
  }
};

通常,您会打开数据类型,然后访问对该类型有效的字段。

请注意,您不能将string加入工会,因为stringtype 是非 POD 类型。我已将其更改为使用指针,该指针可以是 C 以零结尾的字符串。然后,您必须考虑根据需要分配和删除字符串数据的可能性。

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

在单个结构中处理不同的数据类型 的相关文章

随机推荐

  • 滚动视图内可扩展高度的 GridView

    我在滚动视图中使用 Expandableheightgrideview 我的问题是 当我尝试在 gridview 中添加内容时 内容未正确展开 当其高度存在时 它会显示 2 个滚动条 它应该是整个页面的一个通用滚动条 内容的底部是隐藏的要在
  • 连接关闭后继续 php 脚本

    我试图在页面 连接关闭后继续执行 PHP 脚本 用户将每隔 1 小时轮询一次脚本 我想返回一些 json 输出并希望在后台继续执行脚本 我使用的是共享主机 无法使用 cron 作业 这是我尝试过的 ob start ignore user
  • 得到两个日期之间的年份?

    我有 2 个日期 例如 2009 11 11 2002 11 11 我想得到他们之间的年份 7 我该怎么做 月份和日期始终相同 我不想使用 有没有合适的方法呢 我强烈建议使用 Sarfraz Ahmed 建议的功能 如果您想手动完成 并且没
  • 如何在 WildFly 20 上设置 Samesite cookie?

    我需要在 WildFly20 服务器响应上将相同的站点 cookie 属性设置为 严格 我需要通过服务器配置来完成此操作 有什么帮助吗 JMart 的答案是正确的 但需要将文件添加到您的网络应用程序 undertow handlers co
  • 使用 SwiftUI 使自定义 UIView 方面比例适合/填充时出现问题

    SwiftUI 中没有公共 API 来响应 View 协议的可调整大小修饰符 只有 SwiftUI 中的 Image 可以与 ressized 一起使用 自定义 UIView 如 GIF 的 UIView 现在无法调整大小 我使用 SDWe
  • 用于哈希更改的 Chrome 扩展程序 WebNavigation 侦听器

    我一直在使用chrome webNavigation onCommitted and onCompleted侦听器成功地检测到页面更改 但现在有一些网站完全加载新页面 仅更改了 URL 哈希部分 这些改变并不会激发这两位听众的兴趣 有什么方
  • 如何比较datetimepicker中的两个日期

    我正在做 Windows 项目 其中有两个 DateTimePicker 控件 一个用于 StartDate 另一个用于 EndDate 在运行时 当用户从该控件中选择 StartDate 和 EndDate 时 它 应该读取文本文件 即
  • 复制/重现 Django 开发环境

    我正在和我的朋友一起开发 Django 项目 该项目依赖于一些 python 模块 我在 virtualenv 中安装了 django 和其他依赖项 django 项目的代码位于一个存储库中 所有朋友都可以访问该存储库 他们可以签出 克隆
  • 当 css 中提供 height 属性时,scrollHeight 给出错误的值

    我尝试获取 div 的滚动高度 并且得到了正确的结果 但是当我在 css 中为该特定 div 添加 height 属性时 我得到了不同的值 只需运行fiddle您将在控制台中看到scrollheight属性的值等于268 等于所有子项的高度
  • 如何将 ViewPager 的高度包裹到其当前 Fragment 的高度?

    我制作了一个包含 ViewPager 的 ScrollView 但 ViewPager 的高度没有增长 当ViewPager里面的内容太大的时候 里面会出现 pucht 表格就是缩小的空间 我已经寻找解决方案 发现问题在于wrap cont
  • 如何将自定义枚举描述绑定到 DataGrid

    问题 我有一个枚举类型 其描述标签采用以下样式 URL http xml indelv com data binding enum html description tagtutorial URL 我有一个 Windows SQL Serv
  • 如何从Python列表中删除重复的元组?

    我有一个包含元组列表的列表 如下所示 mylist xxx 879 yyy 315 xxx 879 zzz 171 yyy 315 我想从中删除重复的元组mylist并得到如下输出 mylist xxx 879 yyy 315 zzz 17
  • 解决 SQL Server 中的“无法绑定多部分标识符”错误

    select distinct l username p payid p paymentdate sum p paymentamount as payment b balance as balance from tblUserLoginDe
  • 如何创建年度时间驱动触发器?

    我正在尝试创建一个基于时间的触发器来执行我的incrementCell每年在指定日期的凌晨 1 点永远运行一次 当尝试在下面运行时 ScriptApp newTrigger incrementCell timeBased atDate 20
  • 如何在 Eclipse 中添加 hibernate javadoc?

    过去两个月我一直在使用 Eclipse 我之前没有在其中使用javadocs 今天我搜索了 hibernate javadocs 并得到了 hibernate 3 2 2 ga javadoc jar 但我不知道如何在 eclipse 中添
  • Oracle PL/SQL:动态循环触发器列

    在触发器内部 我尝试循环表上的所有列并将新值与旧值进行比较 这是我到目前为止所拥有的 CREATE OR REPLACE TRIGGER JOSH TEST UPD BEFORE UPDATE ON JOSH TEST TRIGGER TA
  • Eclipse可以自动刷新资源吗?

    Eclipse 带有 PyDev 的 3 4 2 处理不同步资源 在 IDE 外部编辑的文件 的方式与我使用过的其他 IDE 不同 在其他 IDE 中 只有编辑器打开的资源才被视为不同步 在 Eclipse 中 任何资源都可能不同步 这意味
  • 将当前日期作为 Y-m-d 与不具有零填充天数的 Y-m-d 字符串进行比较

    如何在 PHP 中比较两个日期 日期以以下格式存储在数据库中 2011 10 2 如果我想将今天的日期与数据库中的日期进行比较 看看哪一个更大 我该怎么做 我试过这个 today date Y m d expire row gt expir
  • 根据购物车商品数量和产品类别进行折扣

    我正在尝试根据最小购物车商品数量和类别添加自定义购物车折扣 我从这个答案中获取了代码 购物车折扣基于购物车商品数量 并且仅适用于未促销的商品 我对其进行了一些更改 这是我的代码 add action woocommerce cart cal
  • 在单个结构中处理不同的数据类型

    我需要发送一些有关 VxWorks 消息队列的信息 要发送的信息是在运行时决定的 并且可以是不同的数据类型 我正在为此使用一个结构 struct structData char m chType variable to indicate t