当前位置: 首页 > news >正文

开发公司排名seo网站文章编辑软件

开发公司排名,seo网站文章编辑软件,商务网站建设的必备功能,网站建设找文章目录 C中的union什么是union#xff1f;定义union示例一输出结果#xff1a; 示例二修正后的代码解释输出结果结论 union的特性匿名union示例 union和struct的区别1. 内存布局2. 同时访问3. 用途 union和class的区别1. 数据成员2. 功能性3. 适用场景 在C编程中#xff0… 文章目录 C中的union什么是union定义union示例一输出结果 示例二修正后的代码解释输出结果结论 union的特性匿名union示例 union和struct的区别1. 内存布局2. 同时访问3. 用途 union和class的区别1. 数据成员2. 功能性3. 适用场景 在C编程中union是一种独特的数据结构它允许不同类型的变量共用同一块内存空间。这一特性使得union在某些特定场景下非常有用尤其是在内存受限或需要节省内存的嵌入式系统中。union的每个成员共享相同的内存地址这意味着在任何时刻union只能存储一个成员的值。尽管这种限制使得union的使用变得稍显复杂但它同时提供了一种灵活而强大的工具用于处理多种数据类型。 C中的union 什么是union union联合体是一种特殊的数据结构它允许你在同一个内存位置存储不同类型的数据。union中的所有成员共用同一块内存区域意味着一个union变量的所有成员共享相同的内存地址。因此union中最多只能有一个成员变量有效。 定义union 定义union的方式与结构体相似语法如下 union UnionName {MemberType1 member1;MemberType2 member2;// ... };示例一 #include iostreamunion Data {int i;float f;char c; };int main() {Data data;data.i 10;std::cout data.i: data.i std::endl;data.f 3.14;std::cout data.f: data.f std::endl;std::cout data.i after setting data.f: data.i std::endl; // 注意这一行data.c A;std::cout data.c: data.c std::endl;std::cout data.f after setting data.c: data.f std::endl; // 注意这一行return 0; }输出结果 data.i: 10 data.f: 3.14 data.i after setting data.f: 1078523331 data.c: A data.f after setting data.c: 1.36424e-43在这个例子中由于union中的所有成员共享相同的内存位置所以在修改data.f或data.c后data.i的值被覆盖输出值也会发生变化。 示例二 你的代码有许多语法错误和不完整的部分我会修复并为你提供一个可编译的版本。以下是修正后的代码及其解释 修正后的代码 #include iostreamstruct Vector2 {float x, y; };struct Vector4 {union {struct {float x, y, z, w;};struct {Vector2 a, b;};}; };void PrintVector2(const Vector2 vector) {std::cout vector.x , vector.y std::endl; }int main() {Vector4 vector { 1.0f, 2.0f, 3.0f, 4.0f };PrintVector2(vector.a); // 输出: 1.0, 2.0PrintVector2(vector.b); // 输出: 3.0, 4.0vector.z 500.0f; // 修改z的值为500.0fstd::cout std::endl;PrintVector2(vector.a); // 输出: 1.0, 2.0PrintVector2(vector.b); // 输出: 500.0, 4.0std::cin.get();return 0; }解释 Vector2结构体定义了一个简单的结构体包含两个浮点数x和y。 Vector4结构体 Vector4结构体包含一个联合体union该联合体可以在相同的内存空间内存储不同的数据。联合体内有两个匿名结构体匿名结构体是没有名字的结构体可以直接访问其成员 第一个结构体包含四个浮点数x, y, z, w。第二个结构体包含两个Vector2类型的成员a和b。 由于这些成员共享同一块内存因此修改z会影响b中的数据。 PrintVector2函数这是一个简单的打印函数用于输出Vector2的x和y值。 main函数 初始化了一个Vector4对象vector并赋予x, y, z, w初始值1.0f, 2.0f, 3.0f, 4.0f。然后通过PrintVector2函数分别打印vector.a和vector.b。修改z的值为500.0f后重新打印vector.a和vector.b可以看到修改z后b中的值也发生了变化。 输出结果 1.0, 2.0 3.0, 4.01.0, 2.0 500.0, 4.0结论 通过这种方式我们可以在一个union中存储不同的结构体利用它们共享的内存实现灵活的数据操作。这种技巧常用于内存受限的嵌入式系统中。 union的特性 内存共享union中的所有成员共用一块内存union的大小取决于其最大成员的大小。一次只能保存一个值虽然union可以有多个成员但在任何给定时刻只能存储一个有效值其他成员的值会被覆盖。匿名union如果不需要命名可以使用匿名union它的成员可以直接访问而不需要通过union变量名。 匿名union示例 #include iostreamint main() {union {int i;float f;};i 10;std::cout i: i std::endl;f 3.14;std::cout f: f std::endl;std::cout i after setting f: i std::endl;return 0; }union和struct的区别 1. 内存布局 struct每个成员都有自己的内存空间结构体的大小是所有成员大小的总和加上可能的对齐填充。union所有成员共用同一块内存union的大小是最大成员的大小。 2. 同时访问 struct可以同时访问所有成员因为每个成员占用不同的内存区域。union只能访问一个成员访问其他成员时结果是未定义的。 3. 用途 struct用于组合不同类型的变量以便能够同时存储和访问这些变量。union用于节省内存特别是在你知道同一时刻只需要存储其中一个变量的情况下。 union和class的区别 1. 数据成员 class默认情况下其成员的访问权限是private类可以包含成员函数和构造函数、析构函数。union所有成员默认是public的。union可以包含构造函数和析构函数但只能有一个活跃的成员。 2. 功能性 class具有更丰富的功能性可以封装数据和行为支持继承和多态等特性。union功能较为有限主要用于节省内存没有继承和多态等高级特性。 3. 适用场景 class用于创建复杂的数据类型封装数据和行为适用于面向对象编程。union主要用于节省内存空间适用于内存管理要求严格的场景。 通过这些对比可以看出union与struct、class在内存管理和使用场景上的区别。union适合用于需要节省内存且同一时刻只需要存储一种数据的情况而struct和class更适合需要同时存储并访问多种数据的情况。
http://www.ho-use.cn/article/10819397.html

相关文章:

  • 做网站备案网络营销方案内容
  • 东莞网站建设找谁wordpress表情不显示
  • 国内谷歌网站SEO优化wordpress4.9
  • 网站制作推广电话企业管理软件排行榜
  • 如何做好网站的建设与维护免费手机网站系统
  • 建个什么网站吗社区网站建设
  • 网站推广优化技巧大全精品网站建设费用 磐石网络
  • zac seo博客网站seo插件
  • 推荐电子商务网站建设宝山网站建设制作
  • 精美驾校企业网站模板深圳软件外包公司排行榜
  • 做翻译网站 知乎建网站程序工具
  • 东坡区建设局网站做个一般的网站要多少钱
  • 网站建设需求计划asp网站怎样做app
  • 外贸网站建设平台优化营销推广云主机怎样做网站
  • 做一晚水泥工歌曲网站网站建设对策
  • 做职业资格考试的网站有哪些网络规划设计师 高级
  • ps设计师网站wordpress漫画主题推荐
  • 长沙营销网站建设公司网站开发销售员
  • 免费网站在哪下载电子商务网站建设实训需求分析
  • 房产局网站建设方案网站建设如何实现检索功能
  • 哪些网站可以在线做动图网站后缀 .cgi
  • 易语言如何做验证系统官方网站上海专业的网站建设公司哪家好
  • 银川网站推广wordpress 文章 按钮
  • 写作网站原码平安车险官方保险网站
  • 工业软件公司排名优化大师手机版
  • 无锡网站建设维护制作公司网站应该考虑什么
  • 备案期间网站要关闭吗wordpress 猪八戒
  • 做网站需要展示工厂么网站logo在哪里
  • 企业网站建设哪家效果好龙岩网站优化费用
  • 教育行业网站网站建设策划框架