为什么我不能对具有相同内容的两个结构体进行互换分配?

2024-01-13

我正在尝试学习 C,但遇到了一些奇怪的事情:

struct
{
  int i;
  double j;
} x, y;

struct
{
  int i;
  double j;
} z;

在这里,你可以看到我创建了两个struct其元素相同。

为什么当我尝试分配时x = z它将产生编译错误,但是x = y才不是?它们具有相同的内容,那么为什么我不能将它们来回分配呢?

有什么办法可以做到这一点,这样我can assign x = z?或者它们只是必须相同struct.

任何 C 专家都可以为我指出正确的方向吗?


它们具有相同的内容,但类型不同。如果它们是同一类型,只需typedef x z;。如果它们不是同一件事,但恰好包含相同的字段,那么最好创建一个单独的函数来正确分配字段。


我在 C 中声明结构的常用风格包括 typedef,所以我忘了提及它(抱歉!)。语法如下:

typedef struct
{
  int foo;
  double bar;
} x;

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

为什么我不能对具有相同内容的两个结构体进行互换分配? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 在 Python 文档字符串中嵌入 reStructuredText

    我希望在我的 Python 文档字符串中看到一些不错的语法突出显示和着色 它们 当然 是有效的 RESt 例如 A section an example some code rest of python code 我最接近的是我的 vim
  • 4.4 和 5.5 英寸的 UICollectionViewCell 动态调整大小

    我有 UICollectionView 与情节提要中的单元格 每个单元格的大小设置为 145x145 它们在 iPhone 4 5s 上看起来不错 但在 iPhone 6 和 6 上尺寸并没有按比例增加 我如何动态地设置而不是为每个设备手动
  • 使用 JSON 字符串搜索 MySQL 列中的特定值

    我目前有一个 MySQL 表 其中包含一个用于存储类别 ID 的列 这些 id 存储在 JSON 字符串中 我正在寻找最有效的方法来查询这些 JSON 字符串以获取特定 id 例如 Table posts Field cats 以下是 JS
  • 如何使用 GSON 创建 JSONArray

    您好 在我的项目中 我需要使用 GSON 类创建 JSONArray 类型 message msg 1 msg 2 msg 3 asec asec 1 asec 2 asec 3 我知道如何在 GSON 中创建带有键值的 JSONArray
  • 如何调试线性模型和预测的“因子具有新水平”错误[重复]

    这个问题在这里已经有答案了 我正在尝试制作并测试线性模型 如下所示 lm model lt lm Purchase data train lm prediction lt predict lm model test 这会导致以下错误 指出P
  • SQL Server 如果存在

    我必须将数据插入表中 但前提是它尚不存在 我使用以下方法检查现有行 IF EXISTS SELECT X FROM Table1 where id id 会使用 X 提高性能而不是使用列名 不 您可以使用 列名 NULL甚至1 0 根据 A
  • 如何将在执行同一数据流管道期间计算的架构写入 BigQuery?

    我的场景是此处讨论的场景的一种变体 如何使用数据流执行期间计算的架构写入 BigQuery https stackoverflow com questions 29440279 how do i write to bigquery usin
  • 通过宏从过滤范围中删除行

    我遇到以下代码问题 该代码试图过滤一组数据 然后删除可见行 目前 我收到 运行时 1004 错误 删除方法或范围类失败 该错误出现在代码的最后一行 我在网站上发现了一个类似的问题 答案似乎正是我在最后一行代码中得到的答案 Dim LastR
  • 如何在 GhostScript 中将 svg 转换为 eps

    你能帮我用 Ghostscript 将 svg 文件转换为 eps 的命令吗 我尝试在 Gimp 中打开 svg 文件 但它非常大 因此看起来 gimp 无法打开它或需要太长时间 我有两个要转换的文件 注意 我已经完成了从 png 到 sv
  • 如何重复 try- except 块

    我在 Python 3 3 中有一个 try except 块 我希望它无限期地运行 try imp int input Importance n t1 High n t2 Normal n t3 Low except ValueError
  • Celery/Redis 同一任务并行执行多次

    我有 2 个自定义任务 TaskA and TaskB 两者都继承自celery Task 调度程序启动TaskA时不时地 并且TaskA发射N times TaskB每次都有不同的论据 但由于某种原因 有时是相同的TaskB使用相同的参数
  • Javascript 的“for-in”函数是否只返回一个索引?

    这是我尝试运行的方法 function SayHello cars new Array cars 0 Toyota cars 1 Mitsubishi cars 2 Honda for car in cars alert car 这返回了
  • 实例化视图寻呼机android中的所有项目

    我有一个带有视图寻呼机和要显示三个页面的活动 当活动加载时 仅实例化前两个页面 即仅针对位置 0 和 1 调用 pageradapter 类中的 instantiateitem 有没有办法实例化所有三个页面 Try 设置屏幕外页面限制 2
  • osx-lion 上的 Apache 和 php 的两个版本

    我必须在我的 lion osx 上安装 PHP 版本 opt local bin php 5 3 12 usr bin php 5 3 10 当我尝试使用安装 php 模块时port 它指的是 opt local bin php 5 3 1
  • 您可以手动触发 ACTION_BATTERY_LOW 吗?

    我对 android 编程比较陌生 但我被告知大多数应用程序都有一个接收器 当 android 触发 ACTION BATTERY LOW 时 它会减少电池昂贵的活动 Android开发页面说 公共静态最终字符串ACTION BATTERY
  • Java字符串可以有多少个字符?

    我想下一个回文 http www spoj com problems PALIN 来自 Sphere Online Judge SPOJ 的问题 我需要找到最多一百万位的整数的回文 我考虑过使用 Java 的函数来反转字符串 但是它们允许字
  • 为什么我的 XPath 查询(抓取 HTML 表)只能在 Firebug 中运行,而不能在我正在开发的应用程序中运行?

    这样做的目的是为每周出现一两次的所有类似问题 但过于具体的问题而无法成为目标候选人 提供规范的问答 我正在开发一个应用程序 需要解析其中包含表格的网站 由于派生用于抓取网页的 XPath 表达式是一项无聊且容易出错的工作 因此我想使用Fir
  • C++ SSE SIMD框架[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道开源 C x86 SIMD 内在函数库 英特尔在其集成性能基元库中提供了我所需要的东西 但由于版权问题 我无法使用它 EDIT 我
  • 如何可视化或格式化差异/补丁文件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个补丁文件 统一差异 就像输出svn diff git diff or diff u 我想查看它
  • 为什么我不能对具有相同内容的两个结构体进行互换分配?

    我正在尝试学习 C 但遇到了一些奇怪的事情 struct int i double j x y struct int i double j z 在这里 你可以看到我创建了两个struct其元素相同 为什么当我尝试分配时x z它将产生编译错误