- 博客(6)
- 收藏
- 关注
原创 位段,枚举,联合
c语言还支持零碎的一些 自定义数据类型,比如位段,联合等。位段在https://blog.csdn.net/weixin_41143631/article/details/81781261一文中我讲述了结构体节省空间和提高效率的存储成员变量的方式,这一方式同样适用于C++中的class,结构体struct和类class都会经常涉及函数栈帧的压栈问题,对内存处理的打磨会积少成多地去影响运...
2018-08-17 20:06:09 353
原创 C/C++结构体字节对齐详解
前提:为了访问速度和效率,需要各种类型数据按照一定的规则在空间上排列;不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。为了访问未对⻬的内存,处理器需要作两次内存访问;⽽对⻬的内存访问仅需要⼀次访问。于是有了字节对齐,4个字节是一个自然对齐为什么是4个字节?32位机,即计算机数据总线宽度为32个,一次可以处...
2018-08-17 19:06:05 3689
原创 c语言 栈和队列的实现
前提知识顺序表优点:可以随机访问,cpu高速缓存利用率高,不涉及(较少)进行插入和删除操作,应该使用顺序表一般而言,我们使用顺序表(数组)的形式建立 栈这一数据结构。 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。其特点是先进后出,模仿c++stl的stack和queue,我...
2018-08-14 22:22:10 6700 2
原创 C++细节 深拷贝和浅拷贝(位拷贝)详解
前提 在对象拷贝过程中,如果没有自定义拷贝构造函数,系统会提供一个缺省的拷贝构造函数,缺省的拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型成员变量,调用其相应类型的拷贝构造函数。阅读《高质量的c c++编程》,第9章有这样一段话,类似的话在《c++primer》《effective C++》都有所提及,那就是拷贝构造函数问题,这个是类编写者的一个基础问题。位拷贝(浅...
2018-08-07 21:00:14 53523 7
原创 C++细节合成析构函数问题(synthesized destructor)
开门见山,前提知识点析构函数体自身并不直接销毁成员,是在函数体之后隐含的析构阶段中被销毁的 《c++primer》第五版13章中提及的“合成析构函数”,原文中 当1个类未定义自己的析构函数时,编译器会为它定义一个合成析构函数(synthesized destructor)。类似拷贝构造函数和拷贝赋值函数运算符,对于某些类,合成析构函数被用来阻止该类型的对象被销毁。而csdn...
2018-08-01 18:57:43 1351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人