详谈一下堆和栈
详谈一下堆和栈 相必大部分嵌入式的工程师对堆和栈肯定不陌生, 肯定也或多或少遇到过相关的问题.今天就来详细聊一下堆和栈相关的话题. 栈 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。 下面这些占用的就是栈区 栈举例局部变量函数的参数名 堆 堆区(heap)— 由程序员分配释放, 若程…
Linux调试器-gdb
<<<<<<< HEAD Linux调试器-gdb 1. 背景 程序的发布方式有两种,Debug模式和release模式 为什么要存在两种? Debug模式通常用于开发阶段,它会保留所有的调试信息,包括符号表、断点和日志,以便开发人员可以轻松地调试和定位问题。此外,Debug模式通常会关闭一些优化选项,以便…
自动化测试用例
提出问题 假设现在有个函数接口, add() /** * @brief 计算两个数的和 * * @param a 参数1 * @param b 参数2 * @return int 返回值 和 */ int add(int a, int b); 现在只知道它的功能是计算两个数的和.具体实现我们不清楚, 但可能是对的, 也可能是错的我们现在要测试这个函…
代码覆盖率
本文整理常见的代码覆盖率概念。关于如何编写测试用例,参见自动化测试用例。 覆盖率 白盒覆盖率:语句、判定、条件、路径等等; 灰盒覆盖率:接口相关; 黑盒覆盖率:功能、性能测试; 白盒测试中的覆盖率 void fun(bool a, bool b, bool c, bool d) { printf("x\n"); // 语句 1 if ((a == …
C++构造函数
C++构造函数 构造函数的种类 class Test{ private: int _id; int _num; public: Test(); Test(int a); Test(int a, int b); Line::Line(const Line &obj); ~Test(); } // 普通的构造函数 Test::Test() { …
祝大家二十四节气小满快乐
昨夜玉盘沉大江,夜来忽梦荠麦香。时人但只餐中饱,莫忘旧时苦菜黄。 出处:刘长卿 《小满》 夜莺啼绿柳,皓月醒长空。最爱垄头麦,迎风笑落红。 出处:欧阳修《小满》步屟随儿辈,临池得凭栏。久阴东虹断,小满北风寒。 出处:王之道《遣兴》
在C++中解决两数之和
在 C++ 中解决“两数之和”问题,主要有暴力枚举和哈希表两种主流方法。下面我将详细解释这两种方法的实现,并提供代码示例。以下是两种解法的对比表格,帮助你快速了解它们的特点:| 方法 | 时间复杂度 | 空间复杂度 | 核心思路 | 适用场景 || :--- | :--- | :--- | :--- | :--- || 暴力枚举法 | O(n²) …
C++ 引用
C++ 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。 一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。 引用必须在定义时初始化,并且一旦绑定到一个变量后,就不能再绑定到其他变量。 引用的语法如下: int a = 10; int &ref = a; // ref 是 a 的引用 int…
thumbnail
C++ 类 & 对象
C++ 类 & 对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为…
C++ 算法库 
C++ 算法库 <algorithm> C++ 标准库中的 <algorithm> 头文件提供了一组用于操作容器(如数组、向量、列表等)的算法。这些算法包括排序、搜索、复制、比较等,它们是编写高效、可重用代码的重要工具。 <algorithm> 头文件定义了一组模板函数,这…