摘要:
服务器 服务 技术特点 如何使用 依赖库 客户端 服务器 服务器代码在https://gitee.com/ericling666/sponge,对应的客户端源代码在https://gitee.com/ericling666/spongeclient。 对本项目的演示,请看视频【集群聊天服务器与仿微信 阅读全文
摘要:
文章列表 【环境配置】vscode配置C C++开发和调试环境 Git设置代理 C++基础知识整理 Linux开发相关命令整理 Linux Mint下Qt Creator无法输入中文解决办法 集群聊天服务器与客户端开发 coredump文件的使用 cpp内存泄漏和代码检查工具 对象传参、返回与接收的 阅读全文
摘要:
最近买了两块开发板,一块是精英 STM32F103 开发板,用来学习stm32,另一块是阿尔法Linux开发板,用来学习uboot,linux内核以及驱动、操作系统移植这些,感觉挺有意思的。 能学的,想学的东西挺多的,主要是想自己设计一些小东西,从电路原理图的设计,再到芯片元器件选型,绘制PCB,还 阅读全文
摘要:
USB转串口常用CH34x芯片,该芯片有linux下的驱动。 在默认情况下,大部分linux发行版都包含了CH34x的驱动,唯一缺点就是版本比较久。 可以先插上开发板, 一般是挂载到/dev/ttyCH341USB0文件下,如果该文件不存在,有两种可能,一种是驱动版本太久,可以下载官方的驱动文件,然 阅读全文
摘要:
首先理解什么是RAII,RAII(Resource Acquisition Is Initialization)是C++中用来管理资源的生命周期的一种技术。 在 RAII 中,资源的获取和释放是在对象的构造函数和析构函数中完成的。当对象被创建时,它的构造函数被调用,从而获取资源;当对象超出作用域时, 阅读全文
摘要:
移动构造、移动赋值 C++11新增了移动语义新特性,移动语义允许在不复制数据的情况下转移资源的所有权。在这之前,对象通过拷贝构造函数或拷贝赋值运算符进行传递,发生大量的数据复制,导致性能下降。 以常用的string对象为例, #include <cstring> #include <iostream 阅读全文
摘要:
C++的编译器会给一个空的类提供六个函数 默认构造函数 析构函数 拷贝构造 拷贝赋值 移动构造 移动赋值 在提供构造函数时,编译器将不再提供默认构造。 这些函数在对象传参、返回对象、接收对象时会自动调用,所以有必要进行相应的优化,减少这种隐式调用。 以下面这段代码为例: #include <iost 阅读全文
摘要:
1. CPP编译链接过程 2. new和malloc区别,delete和free区别 3. 指针和引用 4. 左值引用和右值引用 5. const 6. 函数重载 7. 函数调用栈帧开辟过程 8. inline 内联函数 9. static关键字 10. 定义指向类的成员的指针 11. this指针 阅读全文
摘要:
cppcheck 如何使用 valgrind 如何使用 Sanitizer 如何使用 cppcheck cppcheck属于静态代码检查工具,能处理比较多的类型。 如何使用 # 分析目录 cppcheck <path to dir> # 分析单个文件 cppcheck <path to cpp fi 阅读全文
摘要:
coredump文件在调试程序时,能够快速将堆栈恢复到程序崩溃时的状态,对于代码调试很有帮助,尤其是对于哪些难以复现的bug。 在默认情况下,是不生成coredump文件的。 可以通过命令ulimit -c查看当前系统允许生成coredump文件的大小。默认情况下,返回0,表示不允许生成coredu 阅读全文
摘要:
注,本文所指的是linux中使用fcitx输入框架下,Qt程序输入中文的解决办法 如果是ibus输入框架,则不需要任何操作,可以直接输入中文 但是微信使用的是fcitx输入框架,且比较常用,故只能使用fcitx输入框架 ubuntu下有对应的fcitx-frontend-qt6软件包,直接安装就能解 阅读全文