标签: cpp
这段 C++ 代码演示了如何使用 std::thread 创建并管理线程。以下是逐行解释:代码分析std::thread t([](){ // 1. 创建一个新线程 std::cout
this 指针是C++类中每个非静态成员函数都隐式拥有的一个指针,指向当前对象自身。 它的类型是 ClassName* const,即“指向当前类类型的常量指针”。常用场景1. 区分成员变量和参数当成员变量和函数参数同名时,常用 this-> 区分:class Person { std::strin…
回调函数什么是回调函数?回调函数(Callback Function)就是你把一个函数“传递”给另一个函数,当某个事件发生时,这个函数会被“回调”执行。 举例:void onDataReceived(int data) { // 处理收到的数据 } void asyncRead(void(*callback)(int)) { // ..…
今天发现使用using namespace chrono; using namespace std;是有先后顺序的。顺序不对编译器会报错#include #include using namespace chrono; using namespace std; int main() { milliseconds ms(1000); /
最近发现编写的程序在发送时,时间间隔特别小的时候,抓包会发现粘包,组包发送没问题。排查之后发现,tcp发送数据会默认延迟。原因是tcp默认会遵循Nagle 算法Nagle 算法Nagle 算法是一种通过减少小数据包的发送来优化网络效率的机制。它的主要作用是:减少…
settings.json 实际上就是vscode的设置。但是有时候会发现多个settings.json,这是因为:项目级别:在 .vscode/settings.json(项目相对路径) 中配置与项目相关的设置,例如特定的编译器路径、语言支持插件配置等。远程全局级别:在 /home/xxx(username)/.vs…
1. 忽略 SIGPIPE 信号 (signal(SIGPIPE, SIG_IGN))作用:signal(SIGPIPE, SIG_IGN) 告诉系统全局忽略 SIGPIPE 信号。当程序向已关闭的管道或套接字写数据时,操作系统不会再发送 SIGPIPE 信号,进程不会因此中断或终止。作用范围:这是一个全局设置,适用于…
ModbusModbus协议的相关知识概要Modbus 是一主多从的通信协议,最多有247个从设备单播模式 主请求,从相应广播模式 主请求,从事务处理而不要求返回应答。所以请求指令必须是Modbus标准功能中的写指令Modbus寄存器寄存器可以指具体的物理寄存器,也指一块内…