![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
文章平均质量分 89
C和C++记录
zpethan
机械电子工程,超算AI系统优化
展开
-
c++彻底消灭——内存泄漏、野指针(下篇)
文章目录1. 前情回顾2. 遗留问题3. 需求总结4. 解决方案1. 前情回顾前篇最后,我们为消除内存泄漏、野指针等问题所做的代码尝试还是存在问题,本篇我们来讨论一下剩下的问题以及后续改进。为了方便大家阅读,我们先直接贴上上篇最后的代码。#include <memory>#include <exception>#define HEAP_SIGN_STR ("H...原创 2020-05-09 12:42:18 · 448 阅读 · 0 评论 -
c++彻底消灭——内存泄漏、野指针(上篇)
文章目录[摘要]1. 需求分析场景1场景22. 解决方案3. 初次尝试4. 总结[摘要]c++被誉为最难学的编程语言,一方面是由于其功能过于强大、过于底层,导致语法灵活多变;另一方面是由于其内存管理极其复杂。其中,最主要的,被诟病最多的,就是其内存管理。c++的内存结构中的使用频率超高的堆内存完全由程序员自己管理,这就导致c++这门语言对程序员的水平要求极高,一不小心就会导致内存泄漏,或者使...原创 2020-04-28 22:48:43 · 2053 阅读 · 0 评论 -
c++代码文档化注释
近段时间,一直在学习华为C语言编程规范(2011版),在“注释”这一章中发现了一种“Doxygen”的注释转文档工具,查看诸多相关资料,并进行编程实践,终于可以利用Doxygen给C程序生成注释文档。在使用过程中,我已经深深地喜欢Doxygen,并在写代码时使用Javadoc注释风格。 本文由三部分组成:1)工具下载及安装;2)编写Doxygen可识别的注释;3)利用Doxygen工具将...转载 2018-10-10 14:42:29 · 5707 阅读 · 2 评论 -
使用doxygen对c++代码进行文档化注释示例
Doxgen的使用包括两个方面: - 一个是代码的注释规则; - 一个是利用doxgen生成相应的HTML和chm文件。注释规则文件注释 /*! * @file core.h * @brief 核心类core * @author author * @date 2016-11-12 ...转载 2018-10-10 12:10:54 · 493 阅读 · 0 评论 -
使用doxygen对c++代码进行文档化注释
doxygen从c++注释生成设计说明对于大多数写代码的人来说,写文档是一件既让人感觉“没有技术含量”、枯索无味而又冗长的事情。特别是设计说明这种马后炮类的文档,几乎到了让人感觉到痛苦的地步。而如今新的IDE、新的技术涌现,已经解决了部分文档的问题,也就是代码文档化。代码文档化不仅是一种时髦、漂亮,也不仅仅停留在编程规范纸上空文的层次,而俨然成为...转载 2018-10-10 12:07:40 · 443 阅读 · 0 评论 -
C++模板类中静态数据成员初始化
首先看代码,静态数据成员分为两种情况,第一种不依赖模版类型参数,第二种依赖模版类型参数。template <typename T> class TestTemStatic{ public: static int knownTypeVar; static T unKnownTypeVar;};那么如何初始化呢?对于第一种存在两种初始化方式: templ...转载 2018-09-21 21:25:33 · 2694 阅读 · 0 评论 -
c++变长参数
新参与的项目中,为了使用共享内存和自定义内存池,我们自己定义了MemNew函数,且在函数内部对于非pod类型自动执行构造函数。在需要的地方调用自定义的MemNew函数。这样就带来一个问题,使用stl的类都有默认构造函数,以及复制构造函数等。但使用共享内存和内存池的类可能没有默认构造函数,而是定义了多个参数的构造函数,于是如何将参数传入MemNew函数便成了问题。1.变长参数函数 首先回顾...转载 2018-09-21 10:14:34 · 1216 阅读 · 0 评论 -
C++ 哈希表 hash_map详解
0 为什么需要hash_map用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复...转载 2018-09-20 13:59:26 · 3440 阅读 · 0 评论 -
常用数据交互格式
在平时工作中,我们经常会遇到数据交互,然而很少去研究它,今天就来总结一下。人与人之间的交流需要彼此都听得懂得语言。同理,在计算机的不同程序之间,或者不同的编程语言之间进行交换数据,也需要一种大家都能听得懂得‘语言’,这就是数据交换格式,经常接触的就是json,除了json还有xml、yaml等等。一、JSON(JavaScript Object Notatio...转载 2018-09-14 11:10:38 · 1945 阅读 · 0 评论 -
c++常用框架和库
值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。下载链接:https://github.com/libevent/l...转载 2018-09-14 10:52:50 · 4623 阅读 · 0 评论 -
C#调用C++的库P/Invoke工具集
p/Invoke可以使用工具辅助自动生成,以减少混淆1、官方的支持http://visualstudiogallery.msdn.microsoft.com/site/search?query=p%2Finvoke&f%5B0%5D.Value=p%2Finvoke&f%5B0%5D.Type=SearchText&ac=4微软的官方扩展上也有很多开源的工具htt...转载 2018-09-13 17:36:33 · 530 阅读 · 0 评论 -
解决C++ dll无法进入源代码调试问题
本文仅说明如何生成一个可进行源代码调试的C++dll,关于如何在.exe中调用dll,与dll源代码联调问题,后续会进行介绍。 生成一个可进行调试的dll。需要在vs中进行以下三个方面的设置。进行上述设置之后,编译得到的c++dll已经具备源代码调试能力。...原创 2018-09-11 11:17:50 · 4042 阅读 · 1 评论 -
在应用程序中调用控制台的方法
MFC调用控制台函数集转载 2017-03-11 15:46:20 · 1370 阅读 · 0 评论