标签归档:c
发表评论
eBPF—使用uprobe探测用户程序函数调用
eBPF—使用kprobe探测内核系统调用
eBPF Map—内核空间与用户空间数据传递的桥梁
eBPF—初探Linux内核扩展
C++使用union+struct实现bit协议的赋值与解析
在进行嵌入式开发的过程中,经常会遇到通信协议是按bit位定义的情况,比如协议一共6个byte字节,每个byte一共8bit位,但是传输的很多数据用1、2个bit就足够了,这时协议会按bit定义,如何方便快捷的进行bit位的赋值和读取,即为本文讲解的内容。
C++ enum枚举的输出重载
我们在编写程序时经常会用到enum枚举类型,使用非常方便。但是当枚举定义较多时,在LOG打印时输出值很难直观的明白其含义,必须对照enum定义。本文介绍一个比较简单的方法,让LOG打印或std::cout输出枚举值时,直接输出文本。
VSCode C++代码自动格式化配置
AddressSanitizer的内存泄漏假象
C++编译优化之—so动态库依赖
C++反射实现—根据类名动态创建对象
我们在编写C++框架时,经常会涉及到一项基础技术,就是根据“一个动态库 + 一个类名称字符串“,动态的创建类对象。
C++疑难杂症定位之—IDA篇
C++ enable_shared_from_this解析
C++性能优化—CPU占用分析
C++常用数据结构性能分析
C++使用std::atomic实现并发无锁同步
C++11中引入了mutex和方便优雅的lock_guard,但是有时候我们想要一个性能更高的实现方式,本文主要讲解如何使用C++11中的原子操作类atomic来巧妙地实现无锁同步。
C++ lock_guard和unique_lock的区别
C++多线程编程需要对共享的数据进行写保护,以防止多线程在对共享数据成员进行并发写时造成资源争抢而导致出现崩溃或其他不符合预期的结果。通常的做法是在修改共享数据成员前先对互斥锁mutex进行lock加锁,在修改后再进行unlock操作,这个场景中经常会出现由于疏忽或异常导致lock之后未能unlock,最终导致死锁。
C++智能指针(unique_ptr 、shared_ptr、weak_ptr、auto_ptr)
一、概述
智能指针:智能指针是一个类,用来存储指针(指向动态分配对象也就是堆中对象的的指针)。
C++的指针*与引用&
简单理解下: