C/C++编码学习
文章平均质量分 54
C++的编码以及技术学习,以及高阶性能优化思想
写代码写到手抽筋
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言返回局部变量问题
要是返回局部变量的地址(也就是指针),就会有风险。因为局部变量在函数结束后就会被销毁,此时指针所指向的内存区域就变得无效了。当返回的是局部变量的值(像int、float、struct等类型)时,实际上返回的是该变量的副本,不会有问题。通过malloc分配的内存,必须由调用者负责释放,否则会造成内存泄漏。静态局部变量的生命周期和程序是一样的,即便函数执行结束,它依然存在。局部数组也是局部变量,函数结束后其内存会被回收。原创 2025-06-17 11:47:36 · 403 阅读 · 0 评论 -
C++虚函数和纯虚函数
总结:纯虚函数之所以不能实例化,是因为它没有具体的实现,使得包含它的类成为抽象类。而抽象类的虚函数表不完整,缺少纯虚函数的地址,所以编译器会禁止其实例化,以此保证类型系统的安全性。在 C++ 里,纯虚函数是在基类中声明但没有具体实现的虚函数,其声明结尾用= 0表示。对于包含虚函数的类,编译器会为其创建虚函数表,这个表中存储着类成员函数的地址。// 这是一个纯虚函数。纯虚函数在虚函数表中对应的是一个未定义的条目,或者说是一个占位符。派生类必须实现基类中的所有纯虚函数,才能成为具体类,进而被实例化。原创 2025-06-04 08:30:22 · 379 阅读 · 0 评论 -
C++虚函数和纯虚函数
总结:纯虚函数之所以不能实例化,是因为它没有具体的实现,使得包含它的类成为抽象类。而抽象类的虚函数表不完整,缺少纯虚函数的地址,所以编译器会禁止其实例化,以此保证类型系统的安全性。在 C++ 里,纯虚函数是在基类中声明但没有具体实现的虚函数,其声明结尾用= 0表示。对于包含虚函数的类,编译器会为其创建虚函数表,这个表中存储着类成员函数的地址。// 这是一个纯虚函数。纯虚函数在虚函数表中对应的是一个未定义的条目,或者说是一个占位符。派生类必须实现基类中的所有纯虚函数,才能成为具体类,进而被实例化。原创 2025-06-04 08:29:46 · 262 阅读 · 0 评论 -
C++11——智能指针
今天面试问到了这个。原创 2025-05-26 22:03:04 · 284 阅读 · 0 评论 -
C++内存模型
c++对象内存模型【内存布局】原创 2025-05-24 17:21:26 · 607 阅读 · 0 评论 -
C++性能优化之访存优化(未完)
软件是使用预取指令或者内置函数,内置函数就是编译器自带的函数,_builtin_prefetch(void * addr, rw, locality);第一个采纳数是内存指针数据,第二个是读写,第三个预取数据的时间局部性,0-3,越大代表时间局部性越强。数据预取是一种提前为处理器准备数据机制,主要有硬件预取和软件预取。硬件是根据程序运行状态预测,硬件机制。原创 2025-05-14 11:18:45 · 330 阅读 · 0 评论 -
C++多线程的性能优化
现代多核处理器环境下,线程池技术是提高程序并发性能的重要手段。本文解析一个采用工作窃取(Work Stealing)算法的高效线程池实现,通过详细代码分析和性能测试展示其优势。原创 2025-04-01 22:57:32 · 783 阅读 · 0 评论 -
C++ 之 nullptr 访问成员函数
nullptr访问成员函数原创 2025-03-31 12:33:20 · 129 阅读 · 0 评论 -
C++优质学习资源汇总
该课程基本把面试所需要的C++常用的网络等教程均进行讲解,满足基本需求。原创 2024-11-27 11:40:35 · 390 阅读 · 0 评论 -
C++ 学习语法--遗忘点 难点(持续学习更新)
C++11 中引入了默认函数控制,可以通过控制编译器生成的默认函数来控制程序显式创建和复制行为。默认函数控制包括 = default 和 = delete 两种类型,用于规定编译器如何生成默认实现。如果没有定义默认赋值运算符,编译器会自动为该类生成一个默认的赋值运算符。默认构造函数是没有参数的构造函数,用于创建类的默认对象。= delete:表示要求编译器不生成该函数的默认实现,通常用于避免不正确的行为或者限制特定操作的使用。= default:表示将该函数的默认实现指定为编译器自动生成的默认实现。原创 2024-01-08 11:22:33 · 1126 阅读 · 0 评论 -
C++性能优化技巧-数据预取
时间局部性是指,如果程序中某一条指令一旦执行,则不久之后该指令可能再被执行;为 0 时表示,它没有时间局部性,也就是说,要访问的数据或地址被访问之后的不长的时间里不会再被访问;为 3 时表示,被访问的数据或地址具有高 时间局部性,也就是说,在被访问不久之后非常有可能再次访问;其中参数 addr 是个内存指针,它指向要预取的数据,我们人工需要判定这些数据是很快能访问到的,或者说是它们就在最近的内存中 — 一般来说,对于链表而言,各个节点在内存中基本上是紧挨着的,所以我们容易预取链表节点里的指针项。原创 2024-05-21 15:55:50 · 601 阅读 · 0 评论
分享