
C/C++
文章平均质量分 84
C/C++学习记录
hzdxyh
这个作者很懒,什么都没留下…
展开
-
C/C++环形缓冲区实现(二)
在处理流式数据的粘包/分包等场景时,经常会用到缓存buffer,先从socket或者串口等设备把数据读出,插入到buffer的末尾,在数据解析线程中,再从buffer的头部拿出数据,然后进行解析。在之前的文章C++环形缓冲区实现(一)中详细介绍了一种环形缓存区C++的实现,针对很多嵌入式设备都在使用纯C语言进行开发,本文将C++的实现方式改为C语言实现。原创 2025-01-15 11:06:12 · 316 阅读 · 0 评论 -
C/C++环形缓冲区实现(一)
在处理流式数据的粘包/分包等场景时,经常会用到缓存buffer,先从socket或者串口等设备把数据读出,插入到buffer的末尾,在数据解析线程中,再从buffer的头部拿出数据,然后进行解析。原创 2025-01-14 17:40:57 · 395 阅读 · 0 评论 -
C/C++数据类型转换
在最近的编程实践中,遇到了一个的 bug,定位问题时才发现问题根源在于忽略了 C/C++ 中的自动数据类型转换。由于编译时没有开启严格的编译检查,使得这个潜在的问题顺利通过了编译阶段,却在程序运行时引发了异常行为,给调试工作带来了不小的困扰。在此,我决定将这次对 C/C++ 数据类型转换问题的研究过程记录下来,以便日后回顾,同时也希望能给其他开发者提供一些参考和警示。原创 2025-01-09 17:53:53 · 681 阅读 · 0 评论 -
C/C++基本数据类型
C/C++程序也写了有几年了,但被问起详细的C/C++数据类型,所占内存空间,以及数据类型隐式/显示转换时,有些还是模棱两可,本文做深入的探讨。原创 2025-01-08 14:36:17 · 483 阅读 · 0 评论 -
C++设计模式-观察者模式
Observer(观察者):它是一个抽象类或接口,为所有的具体观察者定义一个更新接口,使得在得到主题的通知时更新自己。Subject(主题):它维护了一系列依赖于它的Observer对象,并提供一个接口来允许Observer对象注册自己、注销自己以及通知它们。ConcreteObserver(具体观察者):它实现了Observer接口,存储与Subject的状态自洽的状态。具体观察者根据需要实现Subject的更新接口,以使得自身状态与主题的状态保持一致。原创 2024-08-12 15:36:46 · 1310 阅读 · 0 评论 -
C++设计模式-适配器模式
目标接口(Target):定义客户需要的接口。适配者类(Adaptee):定义一个已经存在的接口,这个接口需要适配。适配器类(Adapter):实现目标接口,并通过组合或继承的方式调用适配者类中的方法,从而实现目标接口。适配器模式的优点主要包括:(1)提高类的透明性和复用性: 适配器模式可以让类在现有的基础上进行复用,而不需要做出任何改变,这有助于避免大规模改写现有代码。(2)解耦目标类和适配器类: 通过使用适配器模式,目标类和适配器类可以实现解耦,从而提高程序的扩展性。原创 2024-08-08 10:45:14 · 1279 阅读 · 0 评论 -
C++设计模式-策略模式
在策略模式中,我们首先定义一个抽象基类或接口,它代表着所有可能被应用的算法的共性。然后我们编写具体的子类实现这个接口,并实现各自的算法函数。最后我们编写一个环境类或者上下文类,该类持有一个指向抽象基类或接口类型的指针,客户端可以传递不同的具体算法对象给环境类,从而动态地改变其行为。策略模式的优势在于可以将算法的实现和使用分离,方便客户端动态地替换策略对象,并且可以避免使用多重条件语句来选择不同的算法实现。原创 2024-08-08 09:07:11 · 478 阅读 · 0 评论 -
C++设计模式-单例模式
私有化构造函数,以防止外界创建单例类的对象不需用拷贝和赋值,在单例模式中,始终只有一个对象提供一个自身的静态私有成员变量,以指向类的实例使用一个公有的静态方法获取该实例以上列出了几种常见的单例模式方法和实现,推荐使用最后一种,即Meyers Singleton。原创 2024-08-07 11:36:24 · 878 阅读 · 0 评论