Unix/C/C++进阶
文章平均质量分 92
Unix/C/C++进阶
worthsen
Just do it!
展开
-
定时器的实现方案:红黑树和多级时间轮
定时器的实现方案:红黑树和多级时间轮转载 2023-06-05 22:15:30 · 149 阅读 · 0 评论 -
Unix/C/C++进阶--SocketCAN 编程
Unix/C/C++进阶--SocketCAN 编程原创 2023-06-04 10:43:28 · 3943 阅读 · 1 评论 -
C/C++/Qt 文件操作 & 效率比较
文件操作 & 效率比较原创 2023-06-03 07:32:30 · 1431 阅读 · 0 评论 -
文件操作--遍历文件并过滤
C++ 跨平台遍历文件并过滤原创 2023-05-31 23:55:28 · 720 阅读 · 0 评论 -
Unix/C/C++进阶--pthread 跨平台
pthread 线程跨平台原创 2023-05-27 14:31:01 · 1435 阅读 · 0 评论 -
转--Linux/Windows下C++设置线程名字方便多线程调试
C++ 线程命令,linux & windows转载 2023-05-26 07:24:58 · 479 阅读 · 0 评论 -
Unix/C/C++进阶--线程 pthread_creat() return 1失败
linux pthread原创 2023-05-21 17:03:39 · 1212 阅读 · 0 评论 -
转--原来gdb的底层调试原理这么简单
gdb调试转载 2022-06-25 11:20:06 · 153 阅读 · 0 评论 -
转--利用C语言中的setjmp和longjmp,来实现异常捕获和协程
C语言setjmp和longjmp转载 2022-06-25 11:00:18 · 151 阅读 · 0 评论 -
转--拿来即用:分享一个检查内存泄漏的小工具
内存泄漏工具转载 2022-06-25 10:45:58 · 771 阅读 · 1 评论 -
Unix/C/C++进阶--通过基类释放子对象
Unix/C/C++进阶--通过基类释放子对象1 概述2 情况分类2.1 父类指针,父类对象2.2 子类指针,子类对象 【父类析构函数为虚函数】2.3 父类指针,子类对象父类析构函数为虚函数,删除父指针父类析构函数为虚函数,父指针做子类型转换后再删除父类析构函数不实现,删除父指针父类析构函数不实现,父指针做子类型转换后再删除3 结构体4 详解参考1 概述如下图,子类继承父类,delete就是依据指针指向的内存地址以及虚表指针。2 情况分类具体删除内存多少与指针类型和虚表指针相关。2.1 父类原创 2022-05-29 20:42:26 · 466 阅读 · 1 评论 -
《C++ Concurrency in Action》笔记
《C++ Concurrency in Action》笔记1 你好,C++的并发世界1.1 何谓并发1.1.1 计算机系统中的并发1.1.2 并发的途径多进程并发多线程并发1.2 为什么使用并发?1.2.1 为了分离关注点1.2.2 为了性能1.2.3 什么时候不使用并发1.3 C++中的并发和多线程1.3.1 C++多线程历史1.3.2 新标准支持并发1.3.3 C++线程库的效率1.3.4 平台相关的工具1.4 开始入门2 线程管理2.1 线程管理的基础2.1.1 启动线程2.1.2 等待线程完成2.1原创 2022-01-28 17:54:25 · 2985 阅读 · 0 评论 -
Unix/C/C++--位域(位段)
Unix/C/C++--位域(位段)1 介绍2 结构体定义示例3 支持类型4 位域存储参考1 介绍有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。这在寄存器操作上用的较多些,如PLC行业modbus通信,位寄存器可能需要5个不需要一个字节。2 结构体定义示例typedef struct { char name:6; cha原创 2021-12-02 23:25:57 · 874 阅读 · 0 评论 -
Unix/C/C++进阶--编程错误类型与应对策略
Unix/C/C++进阶--编程错误类型与应对策略1 介绍2 常见错误2.1 注释低效2.2 幻数之谜2.3 全局变量风险2.4 引用充分使用参考1 介绍开发人员,参与设计、开发、维护过程,有效避免编程错误,可增加成品的健壮性,同时减少人力,财力资源的消耗。2 常见错误2.1 注释低效注释冗余,必要注释缺乏都是注释低效的表现。必要注释必须有,注释协助理解程序逻辑。无必须,不注释。加注释,维护注释,都需要消耗人力,财力。名可明,无需明。命名能明确表述用意,就不再明确注释。2.2 幻数之谜原创 2020-08-30 16:29:33 · 313 阅读 · 0 评论 -
Unix/C/C++--强制类型转换详解
Unix/C/C++--强制类型转换详解1 简介2 C2.1 两种转换形式2.2 预算3 C++示例参考1 简介当操作数的类型不同,而且不属于基本数据类型时,经常需要将操作数转化为所需要的类型,这个过程即为强制类型转换。强制类型转换具有两种形式:显式强制转换隐式强制类型转换。2 C2.1 两种转换形式显式强制转换char c = 'a';int i = char(c);隐式强制类型转换。char c = 'a';int i = c;2.2 预算3 C++C++的原创 2020-08-21 22:17:19 · 406 阅读 · 0 评论 -
Unix/C/C++--数据类型转换、格式化、cpy、精度
Unix/C/C++--数据类型转换1 简介2 等号赋值与memcpy3 各类转换3.1 unsigned char 2 float3.1 unsigned char 2 string4 指针传递4.1 数组指针4.1.1 示例一4.1.2 示例二参考1 简介各类场景下,需要各种数据转化。2 等号赋值与memcpystrcpy等函数的逐字节拷贝,memcpy是按照机器字长逐字进行拷贝的,...原创 2019-12-26 06:58:39 · 706 阅读 · 0 评论 -
Unix/C/C++--回调
Unix/C/C++--回调1 介绍2 理解3 示例3.1 借助接口类实现回调3.2 类之间调用参考1 介绍2 理解3 示例3.1 借助接口类实现回调#include <iostream>#include <string>#include <sigc++/sigc++.h>class Printer :public sigc::trackabl...原创 2019-12-12 19:29:38 · 362 阅读 · 0 评论 -
Unix/C/C++--套接字socket
Unix/C/C++--套接字socket1 简介2 流程3 接口介绍3.1 POSIX socket flow:参考1 简介2 流程3 接口介绍3.1 POSIX socket flow:1.create a tocket #include <sys/socket>// success return file descriptor, error return -1in...原创 2019-12-03 20:57:29 · 782 阅读 · 0 评论 -
Unix/C++--libsigc++深入理解
Unix/C++--libsigc++深入理解1 简介2 核心思想3 功能模块分析参考1 简介信号槽是观察者模式的一种实现,或者说是一种升华。信号槽这一术语最初来自 Trolltech 公司的 Qt 库。并成为Qt中最核心功能模块。不用Qt情况下,常用的信号与槽的库有三种:boost的signals,sigslot,sigc++。sigslot优点是不用担心空回调,当回调对象析构时会自...原创 2019-12-01 14:29:15 · 1589 阅读 · 0 评论 -
Unix/C++--关键字mutable、noexcept等
Unix/C++--关键字mutable等1 简介2 mutable2.1 介绍3参考1 简介C++关键字各有自己的特性,有的是辅助封装,如const、private等,有的为了使用方便,不得已破坏封装,如mutable等。2 mutable2.1 介绍mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了...原创 2019-12-01 10:31:48 · 396 阅读 · 0 评论 -
Unix/C++--模板
Unix/C++--模板1 简介2 语法2.1 函数模板的声明和定义2.2 类模板的声明和定义3 模板声明与定义为何不能分开4 使用参考1 简介模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。2 语法2.1 函数模板的声明和定义在函数申明和定义前面,加一个...原创 2019-12-01 09:04:23 · 273 阅读 · 0 评论 -
Unix/C++--using详解
Unix/C++--using详解1 介绍2 用法2.1 申明2.2 命名空间2.3 取代typedef,类型别名2.4 改变从基类继承来的成员的访问级别2.53参考1 介绍2 用法2.1 申明using申明 : using + 限定名称using std::cout;2.2 命名空间using namespace std;2.3 取代typedef,类型别名using 类型...原创 2019-12-01 00:53:14 · 408 阅读 · 0 评论 -
Unix/C++--结构体struct和class类区别
Unix/C/C++--结构体struct和class类区别1 struct 介绍2 class介绍3 异同参考1 struct 介绍2 class介绍3 异同C++中声明一个新的型别,如果不需要虚拟函数,不需要构造,析构方法,那么声明为struct要比声明为class更高效和简洁,因为编译器内部会对此进行分析并且优化。参考1、2、...原创 2019-11-30 21:46:35 · 359 阅读 · 0 评论 -
Unix/C/C++--宏
Unix/C/C++--宏1 简介2 一般应用3 高级应用3.1 功能宏开关模块3.1.1 实现3.1.2 优点3.2 使用一些宏跟踪调试参考1 简介简单的宏定义:#define <宏名> <字符串>例: #define PI 3.1415926带参数的宏定义#define <宏名> (<参数表>) <宏体>例: #de...原创 2019-11-30 20:39:26 · 359 阅读 · 0 评论 -
Unix/C++--容器
Unix/C++--容器1 简介23参考1 简介23参考原创 2019-12-01 12:07:27 · 263 阅读 · 0 评论 -
Unix/C++--信号与槽机制的理解
Unix/C++--信号与槽机制的理解123参考123参考1、signal-slot 信号/槽(也译信号/插槽)机制2、QT 信号与槽原创 2019-11-30 21:59:21 · 1267 阅读 · 1 评论 -
Unix/C/C++--串口通信
Unix/C/C++--串口通信1 串口介绍2 资料汇总2.1 代码3 示例参考1 串口介绍串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。RS-232:也称标...原创 2019-11-16 17:06:28 · 708 阅读 · 0 评论 -
Unix/C/C++--线程
Unix/C/C++--线程1 线程的简介2 进程和线程关系及区别2.1 线程2.2 进程3 线程执行模型4 Posix 线程4.1 介绍4.2 示例4.3 主要API的介绍4.3.1 创建线程pthread_create4.3.2 终止线程pthread_exit4.3.3 回收已终止线程的资源pthread_join4.3.4 分离线程pthread_detach参考1 线程的简介多进程...原创 2019-11-16 12:41:56 · 458 阅读 · 0 评论 -
Unix/C/C++--enum
C/C++--enum1 介绍1.1 C中enum1.2 C++中enum2 详解2.1 定义2.2 内存2.2.1 占用内存大小2.2.2 存储区域2.3 作用域2.4 存储类型2.4.1 C2.4.2 C++2.5 类型转换2.6 生命周期2.7 特殊用法3 编译参考1 介绍12个月份名、一周7天名、模式名、状态名,等同类名合集,在程序中会用到。使用宏定义实现,宏名过多,代码松散;使用数...原创 2019-10-31 19:49:13 · 537 阅读 · 0 评论 -
Unix/C/C++---字符串 偏 string
C++---string1 介绍2 char str[] 使用2.1 介绍2.2 常用操作函数3 string 使用3.1 头文件3.2 构造函数3.3 string类的字符操作3.4 特性描述3.5 赋值3.6 连接3.7 比较3.8 子串3.9 交换3.10 查找3.11 替换3.12 插入3.13 删除3.14 迭代器处理3.15 字符串流处理参考1 介绍字符串实际上是使用 null ...原创 2019-10-31 07:28:08 · 566 阅读 · 0 评论 -
Unix/C/C++--文件读写详解
C++---文件读写详解1 介绍1.1 简介2 图解34参考1 介绍1.1 简介#include #include ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)2 图解34参考1、C++文件读写详解(...原创 2019-10-31 00:50:19 · 1028 阅读 · 0 评论