联合和结构初始化

2024-01-04

我偶然发现了一段基于 C 语言联合的代码。代码如下:

    union    {  
        struct  {  
            char ax[2];  
            char ab[2];  
        } s;  
        struct  {  
            int a;  
            int b;  
        } st;  
    } u ={12, 1}; 

    printf("%d %d", u.st.a, u.st.b);  

我只是不明白输出是怎么来的268 0。这些值是如何初始化的? 工会在这里运作得怎么样?输出不应该是12 1。如果有人能详细解释这里到底发生了什么,那就太好了。

我使用的是 32 位处理器和 Windows 7。


该代码并没有按照您的想法进行。大括号初始化初始化first工会成员,即u.s。但是,现在初始化程序不完整并且缺少大括号,因为u.s包含两个数组。它应该是这样的:u = { { {'a', 'b'}, { 'c', 'd' } } };

你应该永远编译时出现所有警告,一个像样的编译器应该告诉你有些地方出了问题。例如,海湾合作委员会说,missing braces around initialiser (near initialisation for ‘u.s’) and missing initialiser (near initialisation for ‘u.s.ab’)。很有帮助。

在 C99 中,您可以利用命名成员初始化来初始化第二个联合成员:u = { .st = {12, 1} };(顺便说一句,这在 C++ 中是不可能的。)第一种情况的相应语法是`u = { .s = { {'a', 'b'}, { 'c', 'd' } } };,这可以说更加明确和可读!

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

联合和结构初始化 的相关文章

  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 如何知道进程已崩溃

    在我的控制台应用程序中 我的代码如下所示 Process DKU new Process DKU StartInfo FileName MSSQLExecutor exe DKU Start DKU WaitForExit Console
  • 如何解决 - TypeError: 无法安全地将非等价的 float64 转换为 int64?

    我正在尝试将 DF 中的一些浮点列转换为 int 但出现上述错误 我尝试过将其转换以及 fillna 为 0 我不喜欢这样做 因为在我的数据集中需要 NA 我究竟做错了什么 我都尝试过 orginalData NumericColumns
  • Objective-C 使用短路评估吗?

    我尝试了以下内容 if myString nil myString length And got NSNull length 发送到实例的无法识别的选择器 第一个条件失败后 Objective C 不会短路吗 Objective C 确实支
  • iPhone 应用程序可以充当服务器来发送消息或推送通知吗?

    我想写一个可以充当客户端的iOS应用程序and通过蜂窝数据网络连接其他 iPhone 的服务器 即没有典型的集中式服务器 目标是通过某种通知方式从 iPhone 服务器向多个 iPhone 客户端共享一系列约 200 条短事件消息 一次一条
  • 获取Google广告ID并限制广告

    我正在构建一个 Unity Android 应用程序 并查看一些广告 我们正在考虑的一项服务需要我的谷歌广告 ID 并限制广告状态 以便进行服务器到服务器的转换跟踪 问题是我不确定如何在 Unity 中获取这些值 看来我需要某种形式的插件
  • 将值插入循环内的关联数组中

    我是 php 的新手 我使用 foreach 循环来遍历已解码对象的数组 我想为每次迭代向新数组输入值 这是代码的一部分 example of array before decoding it id 1 quantity 12 other
  • jQuery 在 jsFiddle 中可以运行,但在我的电脑上不行

    我是 jQuery 的新手 一整天都在绞尽脑汁试图确定为什么这个脚本在 jsFiddle 中运行而不是在我的计算机上运行 我没有服务器设置 我只是从桌面在浏览器中启动 html 代码在这里工作正常 http jsfiddle net 9Du
  • Julia 语言 - @async 任务中的状态 :: 当前目录

    我注意到 阅读 捕获了生产错误 Julia 中的不同任务 没有自己的工作目录 但当前目录 是共享的 我意识到在操作系统级别这是显而易见的 一个进程有一个工作目录 我的问题是第一 是否有任何其他明显或不太明显的全局状态我应该注意 显然是环境变
  • Box.COM 与 Android 应用程序集成-OAuthActivity-NullpointerException?

    我正在整合BOX COM与我的 android 应用程序 所以我正在使用BoxAndroidLibraryV2 and BoxJavaLibraryV2与我的申请 我可以运行示例 Android 应用程序BoxSDKSample 因此 我从
  • 使用 R 中的 fct_reorder 根据值重新排序因子

    My data structure list LoB c C C C A A B C A A C A B C B A C B A B C A B B A B C A B C B word c speed connection call bt
  • 如何使用 ansible 'expect' 模块来处理多个不同的响应?

    在这里 我尝试测试我的 bash 脚本 它提示了四次 bin bash date gt opt prompt txt read p enter one one echo one echo one gt gt opt prompt txt r
  • 如何在perl中删除文件的最后10行

    我将总行数作为用户输入 然后从文件中删除这些行数 我看到了这个 learn perl org faq perlfaq5 html How do I count the number of lines in a file 然后我厌倦了下面的简
  • 堆转储中不可能的 Java 内存引用

    我有一个在晚上 7 41 拍摄的 Java 堆转储 我正在使用 Eclipse 内存分析工具对其进行分析 堆转储包含 20 个会话对象 对堆中的这些会话对象之一使用 GC 根路径 命令会显示以下 3 个对该会话对象的引用 来自终结器线程拥有
  • 找不到netbeans 8.0.2中maven本地存储库路径的设置位置

    在 netbeans 中 当我转到 工具 gt 选项 gt Java gt Maven 面板时 显示 Maven 主页 捆绑Maven主页 https i stack imgur com 8yQIQ png 但是我在Netbeans 8 0
  • Heroku、Grails:如果使用多个 Web dyno,则会缺少资源

    我已经创建了 grails 应用程序并将其上传到 heroku 中 如果我使用 heroku 规模网络 1 一切看起来都不错 但如果我跑 heroku 规模网络 2 一些静态资源消失了 从日志中我可以看出 web 2 dyno 中的所有静态
  • 阴影位于文本上方

    我正在向 Xamarin UWP 项目添加阴影 但问题并不是真正特定于 Xamarin 而是一般来说是 UWP bool IsShadowSupported gt ApiInformation IsApiContractPresent Wi
  • 无法使用带有 connect 的 ref 调用子方法

    我想从子组件调用一个方法 按照这里的建议从父方法调用子方法 https stackoverflow com questions 37949981 call child method from parent 但是 当子组件使用来自react
  • 在 while 循环中延迟

    所以我想在 jquery 中执行延迟的 ajax 请求 直到收到特定的服务器响应 非空 我该怎么做呢 while data response null ajax done function data function doUntilResu
  • Python将列表分成n块

    我知道这个问题已经被讨论过很多次了 但我的要求不同 我有一个类似的列表 range 1 26 我想把这个列表分成固定数量n 假设 n 6 gt gt gt x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1
  • 联合和结构初始化

    我偶然发现了一段基于 C 语言联合的代码 代码如下 union struct char ax 2 char ab 2 s struct int a int b st u 12 1 printf d d u st a u st b 我只是不明