首页 > 编程语言 >【C/C++】知识点笔记

【C/C++】知识点笔记

时间:2024-01-10 17:56:30浏览次数:35  
标签:知识点 obj3 struct 初始化 union 成员 笔记 sk C++

1 - 联合体内嵌结构体初始化赋值

union {
    struct {
        int i;
        float f;
        char *p;
    };
    int o;
} obj3 = { 1, 2.2, "sk", 4, 9 };

printf("struct inlay union:  %d, %f, %s, %d\n", obj3.i, obj3.f, obj3.p, obj3.o);

输出:

struct inlay union:  1, 2.200000, sk, 1

说明:

a.  在union中,所有的成员共享同一块内存空间。这意味着,在任何给定的时间,只有一个成员可以持有值。在上述代码中,union的初始化是匿名的,所以是对其第一个成员(一个struct)进行的。因此,o成员并没有被初始化

b.  若要o成员生效,就需要显示初始化,即 obj3 = { 1, 2.2, "sk", .o=4, 9 };

c.  初始化成员个数超过定义的成员个数,则超出的赋值会忽略,但还是建议按个数赋值

 

标签:知识点,obj3,struct,初始化,union,成员,笔记,sk,C++
From: https://www.cnblogs.com/skullboyer/p/17957039

相关文章

  • C++ 拷贝构造函数
    拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:通过使用另一个同类型的对象来初始化新创建的对象。复制对象把它作为参数传递给函数。复制对象,并从函数返回这个对象。如果在类中没有定义拷......
  • agx orin 使用 sdm 刷机后,vscode 使用 C++ 版本的 opencv, 出现红色的波浪线,但是程序
    原因:vscode没有链接好opencv的头文件先找到opencv头文件的位置:sudofind/-iname"opencv"/usr/include/opencv4/usr/include/opencv4/opencv2解决:ctril+sheft+p:打开:c_cpp_properties.json,写入:"includePath":["${workspaceFo......
  • C++设计模式05 —— 装饰模式
    装饰模式过度的使用继承使得派生的子类过多,代码重复度很高,复用性变差。实现加密文件流、加密网络流、加密内存流、缓冲文件流、缓冲网络流、缓冲内存流。如果我们创建一个流基类,然后创建文件流继承流基类,最后创建加密文件流继承文件流、创建缓冲文件流继承文件流。如果这......
  • 笔记本为什么不出可升级CPU的,用台式CPU不行吗?
    我十几年年前的thinkpad通过更换cpu复活了:联想ThinkPadE430ci3变i7:笔记本电脑CPU升级思路—CPU参数为什么现在的市面上可以更换cpu的笔记本非常稀少呢?intel移动CPU1-3代,CPU是和台式机一样的可以更换的。4代以后都是焊死的什么样的笔记本可以更换CPU查看封装方式:PGA封装......
  • C++ 类构造函数 & 析构函数
    题目:假定AB为一个类,则执行”ABa(2),b[3],*p[4];“语句时调用该类构造函数的次数为4次。 解析:ABa(2)为调用一次构造函数;ABb[3] 代表b是AB类的对象数组,包含3个对象,因此为调用3次构造函数;AB*p[4]代表p是AB类的对象指针数组,包含4个类对象指针,不调用构造函数。 补......
  • C++设计模式04 —— 观察者模式
    观察者模式一种一对多的依赖关系,当被依赖的对象发生改变时,所有依赖它的对象都能够做出相应的改变。为一个文件分割器加入进度展示。我们需要支持多个类型的进度条,我们可以随意操控进度条的样式细节。首先,我们做一个进度条的抽象基类classIProgress{public:virtu......
  • Helix QAC 2023.4 新版支持C++20语言,带来更多性能提升!
    HelixQAC2023.4新增功能HelixQAC2023.4全面支持MISRAC++:2023®规则,涵盖100%的指南。此版本还加强了对C++20语言的支持,改进了数据流分析性能,并在整个产品中增加了多项用户体验改进。增强的C++20支持此版本新增了对以下语言特性的支持:-模板参数列表和函数声明的requires-clau......
  • Helix QAC 2023.4 新版支持C++20语言,带来更多性能提升!
    HelixQAC2023.4新增功能HelixQAC2023.4全面支持MISRAC++:2023®规则,涵盖100%的指南。此版本还加强了对C++20语言的支持,改进了数据流分析性能,并在整个产品中增加了多项用户体验改进。增强的C++20支持此版本新增了对以下语言特性的支持:-模板参数列表和函数声明的require......
  • C++和Qt面试题(精简版)
    C++面试题什么是c++?请简述它的优点和缺点c++是一种面向对象的编程语言,实现了继承、抽象、多态和封装等概念。**优点:**能够开发复杂的应用程序,提供了极大地灵活性,让开发者能够控制资源的使用和可用性,从而最大限度的提高性能。**缺点:**由于C++太过自由,导致指针对内存操作时可能造成内......
  • C# 调用WebService 笔记
    最近开发工作涉及到一些关于webService调用的问题,因为太久没有做过这部分,踩了一点坑,做个笔记记录一下,避免下次踩坑。说明C#调用webService基本有两种方法,一种是静态调用,也就是添加到服务引用,还有一种方式是动态引用,动态引用的主要思路是通过url将DLL下载到本地,然后进行调用,这里......