![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
晏九
这个作者很懒,什么都没留下…
展开
-
C++ new calloc malloc
用法:malloc:开辟一块长度为size的连续内存空间void *malloc(unsigned int size);calloc: 开辟一块num个大小为size的连续空间,并将每块空间初始化为0void *calloc(size_t num,size_t size);需要注意的是1. 以上2个函数返回的都是void *类型,必须强制类型转换成对应的类型才可以,否则编译失败2. 如果是typedef struct{}xxx; 里含有string类型,则不能用call.原创 2021-11-18 18:12:04 · 612 阅读 · 0 评论 -
C语言调试工具---gdb及自动调整格式
一、gdb调试-常用指令gdb progrom 执行r args增加断点b file.c:23查看断点:info b进入函数内部s运行一行代码 n运行到下一个断点c打印 p 执行到段错误的时候,可以查看具体的段错误代码bt 二、 调整C语言代码格式将C程序自动调整为谷歌风格clan...原创 2018-08-09 18:34:42 · 1227 阅读 · 0 评论 -
C语言用宏实现静态多态
综述多态性是面向对象程序设计的一个重要特征。在C++语言中,多态指的是:具有不同功能的函数可以用同一个函数名,可以用一个函数名调用不同内容的函数。C++的多态分为两种:1. 静态多态性(编译时多态):在程序编译时系统就能决定调用的是哪个函数,因此称为编译时多态性2. 动态多态性:在程序运行过程中才动态确定操作指针指向的对象,又被称为运行时多态C++实现多态可以用虚函数,抽象...原创 2018-08-03 13:22:35 · 1131 阅读 · 1 评论 -
C++单元测试--Google Test
概述Google Test是一个夸平台的C++测试框架(包括Linux、Windows、Mac OS X等),它提供了丰富的断言、致命和非致命失败判断,death测试,类型参数化测试以及各类运行测试的选项和XML的测试报告。断言断言:检查条件是否为真的语句,一个断言的结果可以是成功,非致命性失败,或致命的失败。如果一个致命失败出现,它会终止当前的函数;否则程序继续正常运行。Goog...原创 2018-08-16 14:46:23 · 1551 阅读 · 0 评论 -
C++单元测试--Google Mock入门
概述白盒测试:全面了解程序内部逻辑结构,对所有逻辑路径进行测试。单元测试:对软件基本组成单元进行的测试,这里的单元是软件设计的最小单位,单元测试属于白盒测试范畴。打桩:在做单元测试或者集成测试时,如果某个程序单元的某条语句需要调用的一个外部函数还没有完成的话,可以简单让它返回几个支持测试用例的值,这种状态的外部函数就是“打桩”Google Mock是google推出的一个开源的白盒...原创 2018-08-20 19:21:45 · 4166 阅读 · 0 评论 -
C/C++性能测试工具----gprof
概述开发时,首先要保证程序可以正确运行,其次是让程序可以快速运行,我们可以使用gprof来精确测量程序执行过程中,大多数时间都在进行什么操作。gprof可以对C\C++等应用程序进行剖析,可以打印出程序运行中各个函数消耗时间,方便优化代码以及分析程序的运行流程。为直观查看gprof结果,可以使用gprof2dot工具生成图gprof2dot官方文档:https://github....原创 2018-08-28 15:35:02 · 4951 阅读 · 0 评论 -
C/C++性能测试工具---Valgrind
一、valgrind memcheck--内存错误检测器可以检测下列与内存相关的问题:未释放内存的使用 对释放后内存的读/写 对已分配内存块尾部的读/写 内存泄露 不匹配的使用malloc/new/new[] 和 free/delete/delete[] 重复释放内存valgrind --tool=memcheck ./a.out二、valgrind massif...原创 2018-09-04 10:03:46 · 1695 阅读 · 0 评论 -
编译配置工具---CMake
简介CMake是一个比make更高级的编译配置工具,主要编写CMakeLists.txt文件,然后使用cmake指令生成makefile文件.cmake编译cmake directorymakedirectory是CMakeList.txt所在目录基本使用command (args...) command是命令名,大小写无关cmake可以直接获取系统环境变量...原创 2018-11-06 16:07:57 · 1369 阅读 · 0 评论 -
十大经典排序算法
转载博客,感觉这个博客写的很清晰https://www.cnblogs.com/onepixel/articles/7674659.html0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相...转载 2018-12-19 11:18:29 · 146 阅读 · 0 评论