C++工程代码自查list

C/C++项目代码审查要点,这一篇文章就够了 项目工程代码编写完成,对于程序创作者并没有结束,需要进行代码Review;但是有些创作者并不知道看哪些内容,如果您不知道Review代码时,需要关注哪些内容,可以从以下内容进行检查;根据目录,您也可以直接检查主要检查要点;其次再从次要检查要点中选择您想检查的内容; 阅读详情

C++工程代码自查list

// 是实打实的踩坑经验

本着早发现早治疗的原则,写个list, 每次大的更新前尽量先离线自查一下。 经验有限,踩坑后再更新

下标

下标最容易出现越界的问题

  • 检查所有用到显式数字索引的地方,是否明确任何情况下这些索引都是有值的
  • 检查所有vector部分,是否有对某个位置的单独索引,能不能保证在size内
  • 全局检查所有用到at的部分,取不到肯定会异常的,是否提前做了find处理
  • 检查map中用中括号索引的部分,是否是期待这里在没有key的时候创建新key

返回值和参数

  • 返回值的类型是否正确,比如unsigned还是signed
  • 对异常返回值是否做了处理,比如因为出错返回了-1,检查这种情况会不会影响到后面的逻辑
  • 传入的参数有没有可能是空值,空值的话会不会影响后面的函数逻辑
  • 返回值有没有可能是null,要不要有默认值
  • 希望的是传值还是传引用,传入的参数在函数返回后还要不要使用;标量传入之后如果不需要更改要不要加const

指针

  • 用指针->调用之前,都要保证不是空指针
  • 返回值是指针,且后面要用到(比如创建client)要做空指针检查

类型转换

  • 所有类型转换的地方检查有没有可能异常,尤其字符串要检查会不会字符串本身为空,转int的值会不会出现浮点数或者字母
    key-value
  • 其实主要踩过的坑是看有没有去重的必要,是直接push_back还是要去掉重复情况

时间处理

  • 用到时间戳和时区的地方离线自查一下,特别是时区是否符合要求https://tool.chinaz.com/tools/unixtime.aspx

本地测试

  • 批处理测试
  • 异常情况测试报错信息
  • 空值测试
  • 重复id测试
  • 。。。
C++缓存优化实战:从原理到性能提升40%的工程实践 缓存是计算机体系结构中的核心概念,它通过在CPU与主内存之间建立高速数据缓冲区,弥补两者间的速度鸿沟。其工作原理基于局部性原理,包括时间局部性和空间局部性,通过多级缓存(L1、L2、L3)层次化设计,以缓存行为单位管理数据。这项技术的核心价值在于,它能将数据访问延迟从数百个CPU周期降低至几个周期,直接决定了程序的执行效率。在高性能计算、游戏引擎、数据库系统和高频交易等对延迟极度敏感的应用场景中,缓存优化是提升吞吐量、降低响应时间的关键手段。本文聚焦于C++高性能编程领域,深入探讨如何通过数据结构选型、内存 阅读详情

相关推荐

用C++刷剑指Offer:源码工程、调试环境与高频题型全攻略

C++凭借其贴近底层的内存管理和丰富的数据结构支持,一直是算法面试与工程实践中的核心语言。理解指针、栈空间、STL容器等基础概念,掌握其原理与边界条件,是高效刷题的关键。在实际应用中,搭建VSCode下的C/C++编译调试环境,并合理规划源码工程结构,能够大幅提升刷题与复盘效率。无论是链表指针操作、二叉树递归与栈空间的关系,还是单调栈算法、字符串初始化等高频考点,C++的严谨性都能帮助开发者深入理解算法本质。本文从工程实践角度,系统整理了使用C++刷《剑指Offer》时的环境配置、公共数据结构设计、题型陷阱

weixin_34088583的博客 377

C++与Python工程选型:内存行为决定系统性能边界

编程语言的本质差异不在语法或生态,而在于对内存管理的契约承诺。C++要求开发者显式控制内存生命周期,提供零成本抽象与确定性执行;Python则通过自动内存管理和对象封装换取开发效率,但引入GC停顿、指针间接访问与运行时开销。这种底层差异直接决定高实时、低延迟、高吞吐等关键场景下的系统表现——从工业控制的10ms硬实时约束,到金融交易的50微秒端到端延迟,再到AI服务中预处理与推理的协同效率。理解内存分配模式、缓存局部性、所有权转移和确定性执行路径,才是技术选型的核心依据,而非泛泛而谈‘快慢’或‘难易’。

weixin_30924087的博客 351

数据结构实验作业全攻略:代码组织、算法优化与调试自查

数据结构是计算机科学的核心基础,算法设计与实现则是程序性能的基石。从链表、二叉树到排序算法,不同数据组织方式的选择直接影响代码的时间复杂度与空间占用。在工程项目与课程作业中,模块化的代码组织、清晰的接口定义、边界条件的正确处理以及内存安全检测,往往比单纯“跑通”更重要。针对数据结构实验作业,合理拆分头文件与实现文件、对比不同方案的时间效率、使用断言验证结构不变量、借助AddressSanitizer排查隐患,这些实践能显著减少返工并提升验收评分。本文以C/C++工程实践为切入点,系统拆解实验作业从代码骨架搭

weixin_31155097的博客 201

C/C++代码审查表

文件结构重要性        审查项                头文件和定义文件的名称是否合理?                头文件和定义文件的目录结构是否合理?                版权和版本声明是否完整?重要          头文件是否使用了 ifndef/define/endif 预处理块?                头文件中是否只存放“声明”而不存放“定义”程序的版式

一辈子的孤单 2241

STM32CubeIDE中文注释变乱码终极解决方案:3步设置永久解决锟斤拷问题!

你是否在STM32CubeIDE中遇到过这样的崩溃场景?——精心编写的中文注释在重新生成代码后变成“锟斤拷”乱码,不仅影响代码可读性,反复修改更是浪费大量时间!作为STM32开发者,我曾被这个问题困扰许久,试过修改软件设置、工程编码却始终治标不治本。直到发现这个基于Java环境变量的终极解决方案,才彻底解决了中文乱码难题。

smart_boy__的博客 2962

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

C/C++ 代码检测工具

valgrind:https://www.cnblogs.com/AndyStudy/p/6409287.html C/C++静态代码检查工具对比分析:http://qa.blog.163.com/blog/static/190147002201611147530522/ C++代码质量扫描主流工具深度比较:https://blog.youkuaiyun.com/wetest_tencent/article...

what, when, why, how... 8772

使用Matlab进行IEEE 33节点潮流计算的NR法实现详解及应用实例

IEEE 33节点系统是一个标准的配电系统模型,广泛用于学术研究和工程应用。该系统由33个节点和37条线路组成,结构复杂,具有代表性。其潮流计算结果可用于验证各种潮流计算方法的准确性和效率。NR法是一种基于迭代求解的潮流计算方法,通过不断迭代求解非线性方程组,直到达到预定的收敛条件。NR法具有收敛速度快、计算精度高的优点,适用于大规模复杂电力系统的潮流计算。

m0_57781768的博客 2071

基于C++11的代码审核常见问题清单

在实际业务开发的过程中,经常发现有些缺陷反复出现,这里总结出业务中常见的问题进行归纳,以便警示大家的同时,为后续开发质量提高用做帮助。此清单的意图是为了提高本组代码质量和开发水平。 序号 缺陷描述 缺陷举例 缺陷造成的程序影响 1 入参在函数中仅作为查找使用,但将入参值传递 int Search(ComplicatedClass cc); 值传..

鳴海步的博客 1299

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 217

这款值68亿的游戏,你不实战一下吗?安排!

本文介绍了如何使用Cocos开发传送带像素消除类游戏。游戏包含像素画、传送带、炮台等核心元素,需要先解析图片生成像素数据,再通过关卡编辑器设计关卡机制。炮台会在传送带上环绕运动,发射子弹消除匹配颜色的像素点。文章详细讲解了游戏对象实现方法,包括像素生成、传送带运动轨迹、炮台瞄准算法等,并展示了实战效果。完整源码已集成到亿元Cocos小游戏实战合集中,适合对像素消除游戏开发感兴趣的开发者参考。

lsw_Cs的博客 438

tiny-random-qwen3-omni视觉编码器详解:patch_size、spatial_merge_size与DeepStack配置指南

📌 本文带你快速搞懂 **tiny-random-qwen3-omni** 的视觉编码器(Vision Encoder)是如何工作的:重点解析 `patch_size`、`spatial_merge_size` 与 DeepStack 三大核心配置,并告诉你如何在 [config.json](https://link.gitcode.com/i/e9ce6d4661426b0675b851041

gitblog_07530的博客 362

基于STM32、HAL库的MPX5500DP气压传感器 驱动程序设计

define MPX5500DP_MIN_VOLTAGE 0.2f // 最小输出电压(V)#define MPX5500DP_MAX_VOLTAGE 4.7f // 最大输出电压(V)#define MPX5500DP_MIN_PRESSURE 0.0f // 最小压力(kPa)#define MPX5500DP_MAX_PRESSURE 500.0f // 最大压力(kPa)* @brief 读取压力值(kPa)// 计算压力值 (线性转换)

corlin6688的博客 196

读 OpenCV 源码能直接搬走什么:计算机视觉库工程实践速读

OpenCV 是一个跨平台的计算机视觉与图像处理库,当前仓库里包含 22 个功能模块、24 个内置的第三方依赖库,能从 x86 服务器跑到 ARM 手机。读它不是为了背 API,而是看一个大型 C++ 项目怎么把自己长期维持在"敢改、改得动"的状态。这篇文章挑出 3 个能直接搬回你自己项目里的点,外加快速编译方法和几个高频坑。 ## 先看规模:这套代码库到底在管什么 📦 打开 [module

gitblog_00052的博客 383

Excel 汉字首字母提取:四种方案对比与选型

本文对比了 Excel 中提取汉字首字母的四种方案:手动转换、VBA 脚本、映射表与 AI 工具。手动方式低效易错;VBA 适合无网环境但识别范围有限;映射表精度提升却无法解决多音字;AI 工具通过语义理解可一句话完成提取,是多数场景下的首选。

u011186532的专栏 395

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 910

智能体编程时代,软件工程师必须掌握的基础技能图谱

自然语言驱动的开发范式正在重塑软件生产流程,但AI替代的是编码执行,而非工程决策。理解智能体编程的本质,需要从需求拆解、架构判断、代码审查、测试验证等基础能力重新审视——大模型生成代码的前提,是清晰的问题定义与约束设计。这些技能构成软件工程的核心底料,决定AI产出的可用性与可维护性。从Python脚本到低代码Agent平台,工程化、调试排错、安全合规的能力依然不可或缺。本文面向学生、业务开发者与低代码平台使用者,整理一张围绕智能体编程时代的技能图谱,帮助读者对照自身技术栈,明确哪些能力需要保留、升级或补齐,

weixin_34127717的博客 417

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

神秘的spn_predictor.ckpt是什么:tts-fastspeech2-ljspeech静音音素预测器SPN解析

**tts-fastspeech2-ljspeech** 是基于 LJSpeech 数据集训练的 FastSpeech2 语音合成(TTS)模型。仓库里那个不起眼的 **spn_predictor.ckpt**,正是它的"静音音素预测器"(Silent Phoneme Token Predictor)权重文件——负责决定一句话结尾该停顿多久,直接影响合成语音的自然度。本文将带你彻底搞懂它。 ##

gitblog_00350的博客 262

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

QGroundControl 的 Qt6 C++ 代码审查清单与实践指南

> 本文源自 QGroundControl 仓库 `tools/skills/qt-cpp-review/` 技能包中的 [qt-review-checklist.md](https://link.gitcode.com/i/8e124ae189a6f9aac65f27a29aead4f9)。该清单提炼自 Qt Wiki 的 "Things To Look Out For In Reviews",

gitblog_00816的博客 218

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RunAnywhere Commons 核心开发指南:C++ 跨端 AI 推理中枢的架构、构建与插件体系

`core/` 目录(即 `runanywhere-commons`)是 runanywhere-sdks 单仓库中的统一 C/C++ 公共库:它以纯 C ABI(`rac_*` 前缀)对外暴露所有 AI 业务逻辑,向下通过插件机制调度 llama.cpp、Sherpa-ONNX、ONNX Runtime、QHexRT、NeuRT 等推理后端,向上被 Swift、Kotlin、Flutter、Re

gitblog_01406的博客 311

day-trader-skill 实战:trader-entry 入场计时器如何逐根 K 线确认突破

本篇技术指南聚焦 day-trader-skill 中的 `trader-entry`(Entry Timer)技能:它读取免费的 Yahoo 1 分钟或 5 分钟 K 线,先构建开盘区间(默认前 15 分钟),然后在第一根**收盘价**站上区间高点或你指定价位的已完成 K 线上给出入场时点。读完后你将掌握 `check` / `watch` / `watchlist` 三个子命令的完整参数用法、

gitblog_00006的博客 531

用dxflib高效读写DXF文件:C++批量处理CAD图纸的工程实践

在CAD二次开发与工程自动化领域,DXF文件作为通用的图形交换格式,是连接设计与程序的桥梁。理解其组码与实体的底层结构,是解析和生成图纸的基础。对于需要批量提取坐标、图层等数据或程序化绘图的需求,直接手写解析器往往面临版本兼容与结构复杂的挑战。dxflib作为轻量级的C++开源库,以回调机制封装了DXF的读写细节,能够稳定处理直线、圆、多段线、文字等常见实体,实现从图纸到数据、再从数据到图纸的高效闭环。这种方案在批量数据提取、CAD与GIS格式互转、自动出图及规则校验等场景中极具价值。本文结合工程实践,系统

weixin_34221332的博客 369

现代C++工程实践:包管理、实用函数与性能优化全解析

C++作为高性能系统编程的核心语言,其工程化实践是构建稳定、高效软件的关键。从概念上讲,现代C++开发已从单纯的语法掌握,演进为对项目结构、代码复用和运行时效率的系统性管理。其核心原理在于通过声明式依赖管理(如vcpkg、Conan)解决第三方库的集成难题,通过构建高内聚的实用函数库提升代码复用率,并通过多层次的性能剖析与优化确保程序高效运行。这些技术的核心价值在于提升开发效率、保障代码质量并充分发挥C++的性能优势,广泛应用于游戏引擎、高频交易、嵌入式系统等对性能有严苛要求的场景。本文聚焦于包管理、实用函

359

C++迭代器失效深度解析:从底层原理到工程避坑指南

迭代器是C++程序员访问STL容器的重要工具,实质上是绑定容器内部状态的句柄。当容器发生插入、删除或扩容时,迭代器可能变成悬垂指针或发生错位,进而触发未定义行为。这种问题在release版本下偶发崩溃,极难定位。理解迭代器失效的本质和各类容器的失效规则,是写出健壮C++代码的必备技能。从vector扩容到unordered_map rehash,从erase-returned迭代器到erase-remove惯用法,现代C++提供了多种规避策略。结合代码级事故复盘,整理一套从规则速查到调试排查的实践方法论,帮

weixin_31220401的博客 247

从APK到可编辑工程:gdsdecomp逆向Godot项目完整指南

gdsdecomp 是一套 Godot 逆向工程工具:它能读取 APK、PCK 或内嵌 EXE,批量反编译 GDScript 字节码,恢复原始工程文件,并在二进制与文本资源之间互相转换。如果你的处境是"源码丢了,手里只有一个安装包",下面这条路径可以直接照做。 [![文件选择对话框,在目录列表中选中 AsteroidDodge.apk,准备恢复工程](https://raw.gitcode.co

gitblog_01091的博客 702
上一篇: C++ lvalue rvalue
下一篇: Python 创建虚拟环境
BeforeEasy
博客等级 码龄10年 92粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值