现代C++工程实践
文章平均质量分 92
charlie114514191
我是一个普通的嵌入式软件程序员,喜欢研究Linux(应用层跟内核从都有粗浅的涉略),单片机,操作系统和计算机体系架构等内容,目前是一枚普通的本科生。
笔者是一个朴素的开源主义者,我坚信代码和知识没有壁垒,也不应该有壁垒所在,任何人都应该平等的获取到所有的知识。笔者力所能及的将自己的代码项目开源到Github
笔者的github:https://github.com/Charliechen114514
笔者的私人博客(旧):https://charliechen114514.github.io/
笔者的私人博客(新):https://www.charliechen114514.tech/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态内存的代价:碎片化与不确定性(内存布局、碎片化与内存对齐)
本文探讨了嵌入式系统中动态内存管理的潜在代价,包括碎片化、时序不确定性和内存对齐问题。作者分析了静态区、堆和栈三种内存布局的特点,详细解释了内部碎片和外部碎片的形成机制及其对系统稳定性的影响。文章还讨论了内存对齐的重要性,以及结构体填充对内存利用率的影响。针对动态内存的不确定性,作者提出了几种嵌入式系统常用的替代方案,如内存池、Bump分配器和Slab分配等混合策略,以平衡灵活性和可靠性。这些方案能有效减少碎片化风险,提高系统实时性能,为嵌入式开发提供了实用的内存管理建议。原创 2026-01-16 09:21:56 · 590 阅读 · 0 评论 -
现代C++实战——# 从零开始写个文件拷贝器(下):核心实现与实战测试
摘要 本文介绍了C++文件拷贝器的核心实现与测试。主要内容包括: 核心读写循环:通过while循环实现"读-写"操作,使用in.read()和out.write()配合gcount()获取实际读取字节数,并处理错误情况。 进度条设计:封装ProgressBar类,实现动态更新的进度显示,包括百分比、文件大小和传输速度,利用回车符实现行内更新。 ETA计算:根据剩余字节和当前速度估算剩余时间,采用分级显示格式(小时/分钟/秒)提升可读性。 性能优化:控制进度更新频率(≥0.1秒),使用ch原创 2026-01-15 08:49:10 · 621 阅读 · 0 评论 -
现代C++实战——从零开始写个文件拷贝器(上):需求分析与基础框架
本文介绍了使用现代C++实现文件拷贝器的初始步骤。作者首先分析了核心需求,包括分块读写、错误处理、进度反馈和结果验证,并设计了简洁的FileCopier类接口。技术选型上采用了C++17的std::filesystem库、RAII风格的流对象和vector作为缓冲区,以及chrono库进行时间测量。文章详细讲解了基础框架搭建过程,包括构造函数设计、异常处理机制、文件存在性检查、二进制模式文件打开和进度追踪变量的初始化。该实现注重工程实践性,充分利用现代C++特性,为后续实现完整的拷贝功能奠定了基础。原创 2026-01-15 08:48:15 · 680 阅读 · 0 评论
分享