- 全部
- 默认排序
多线程程序随机出现数据异常,复现概率极低,单步调试时又完全正常,很难定位到问题根源。这类问题大多来自共享变量的无保护读写,不用靠运气复现排查。1. 加std::mutex锁保护所有多线程读写的共享变量,访问前先加互斥锁。同一时间只允许一个线
C++项目里大量嵌套的宏定义,预处理后生成的实际代码完全看不清,调试时根本不知道当前运行的逻辑是什么,单步跟踪直接跳转到莫名其妙的位置。不用逐行拆解宏替换规则,几个简单方法就能直接看到展开后的全貌。1. 用预编译指令生成文件在GCC编译参数
看懂了移动语义和完美转发的概念,实际写代码时要么触发拷贝,要么编译报错,完全达不到预期效果。不用硬背复杂的引用折叠规则,从实用场景入手就能快速用对。1. 用std::move转移所有权针对即将废弃的局部大对象,直接用std::move把它转
加了volatile,中断共享变量为何仍会错?volatile能防止访问被随意省略,却不能把三条指令合并成不可打断的一步 主循环和中断共享变量时,volatile解决的是编译器是否真正发生访存。它不保证counter++是一条指令,不保证多
嘉立创EDA-原理图的编译与检查在设计完原理图之后、设计PCB之前,工程师可以利用软件自带的DRC功能对常规的一些电气性能进行检查,避免一些常规性错误和查漏补缺,以及为正确完整地导入PCB进行电路设计做准备。1 原理图编译的设置(1)执行菜
1.allegro16.6已经打了102号补丁,已经将AD工程里的原理图转化为ASCII格式,并且编译过有PrjPCBStructure后缀文件,使用file-importAltiumschematicc,报脚本出错,如图所示。2.设置好路径之后,点击转换报错无法找到路径,如图所示。3.在文件夹下能
CAP Duplicate Pad Name OnpadsPad Free-1(-53.15mil,0mil) on Multi-Layer And Pad Free-1(-53.15mil,0mil) on Multi-LayerCAP Duplicate Primit
DetailsNets Wire BOOT1 has multiple names (Net Label BOOT1,Net Label BOOT1,Net Label PB2,Net Label PB2)

扫码关注
















