- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 Windows系统上实现Menuconfig和Kconfig配置方法,并生成config.h文件
在文件夹下创建Kconfig文件,填入所需配置项。
2024-03-02 15:57:54
2017
1
原创 第八章 C++异常处理
以下是本人整理的C++基础知识点,内容并不包含全面的C++知识,只是对C++重点内容、特点进行整理和归纳。8.1 C++异常处理介绍程序的错误 语法错误:在编译和链接阶段就能发现 逻辑错误:调试来解决 运行时错误:运行期间发生的错误 C++ 异常机制语法 try{//匹配异常类型,传递异常数据 可能抛出异常的语句 }catch(exceptionType variable){ 处理异常的语句
2022-04-18 21:20:28
331
原创 第七章 C++函数模板介绍
以下是本人整理的C++基础知识点,内容并不包含全面的C++知识,只是对C++重点内容、特点进行整理和归纳。7.1 C++函数模板介绍泛型程序设计方法 介绍:大量编写模板、使用模板的程序设计 特点 算法只实现一遍,适用于多种数据类型的处理 减少重复代码的编写模板分类 函数模板和类模板类型的参数化 数据的类型通过参数来传递 函数定义时,不指明具体的数据类型 函数调用时,编译器根据传入的实参自动推断数据类型函数模板
2022-04-18 16:00:57
1968
原创 C语言-将变量、宏定义、枚举符号转换为字符串
通过宏来转换:#str 的作用是将str转换为字符串1、将1个变量符号、宏定义、枚举定义转换为字符串#define STR(str) #str 2、将输入的文本转换为字符串支持C99模式才能使用,输入任何文本都可以,变量、宏定义、枚举、语句等#define STRS(args...) #args...
2022-04-12 20:18:05
2581
原创 C语言-多行宏定义添加注释的方法
总结:多行宏定义添加注释时,不能把整行宏定义注释掉,否则展开时,代码会不完整前提1、C语言的宏定义把代码当成文本来处理,使用时会把代码进行直接的粘贴和替换2、宏定义遇到换行符 ‘\0’ 结束 3、多行宏定义每行的最后,需要用连接符 ‘\’ 与下一行进行连接多行宏定义定义一个多行宏定义#define SetTest() do{ \ test = 0; \ test = 1; \ test = 2; \}while(0)int main(void){ int test;
2022-04-11 14:00:14
3077
1
原创 第六章 C++运算符重载(operator)
以下是本人整理的C++基础知识点,内容并不包含全面的C++知识,只是对C++重点内容、特点进行整理和归纳。6.1 C++运算符重载介绍运算符重载介绍 功能 运算符在不同情况下有不同的功能,在不同情况下执行不同的操作 格式 返回值类型 operator运算符名称(形参表列){...} operator 关键字,用于定义重载运算符的函数 可以将【operator 运算符名称】这一部分看做函数名
2022-04-02 16:57:19
2762
原创 第五章 C++多态与虚函数
以下是本人整理的C++基础知识点,内容并不包含全面的C++知识,只是对C++重点内容、特点进行整理和归纳。5.1 C++多态和虚函数介绍虚函数的作用 让基类指针能够访问派生类的成员函数 构成多态虚函数声明 在基类成员函数的声明前面增加 virtual 关键字 定义时不用虚函数产生多态的原因 有了虚函数,当基类指针指向基类对象时就使用基类成员(函数和变量),指向派生类对象时就使用派生类成员 虚函数的存在,基类指针有了多种形态或表现方式,所以
2022-04-02 11:17:26
1176
原创 C语言枚举定义能不能从负数开始?
枚举知识枚举是C语言中的一种数据类型枚举默认从 0 开始定义一个从负数开始的例子typedef enum { OFF = -1, LEVEL1, // 0 LEVEL2, // 1 LEVEL3, // 2 MAX, // 3} Level_e;Level_e level;level = OFF; //语句1level = LEVEL1; //语句2结果分析定义时定义从负数开始的枚举,用keil编译器编译,枚举定义本身不会报错赋
2022-03-28 15:44:09
5779
原创 第四章 C++继承与派生
以下是本人整理的C++基础知识点,内容并不包含全面的C++知识,只是对C++重点内容、特点进行整理和归纳。4.1 继承和派生的概念继承和派生(两者表示一个概念) 继承 一个类获得另一个类的成员(变量和函数) 派生 一个类将自己的成员赋予另一个类(变量和函数)父类和子类 父类(基类) 被继承的类 子类(派生类) 派生的类继承的语法 class 派生类名:[继承方式] 基类名{
2022-03-28 14:41:54
759
原创 实现嵌入式的debug和release模式
关于debug和release模式debug模式通常在debug模式下开发,在代码中添加一些打印输出函数,将测试数据打印到上位机上,方便调测release模式使用release模式下的代码,生成正式版本的固件,用于实际的生产。该模式下通常会屏蔽所有用于开发阶段调测的打印函数标题实现debug和release模式的2种方法方法一:printf重定向 + 可变参数宏这个方法适用于兼容C99模式的开发环境,因为可变参数宏是在C99标准中引入的。第一步、printf重定向首先实现uart串口传输功
2022-03-15 18:39:47
1738
原创 第三章 C++引用
3.1 C++引用介绍 函数调用时的值传递 基本数据类型 传递内容,也就是内存拷贝,速度快 数组 强制传递数组指针,禁止直接传递数组内容,速度快 复合数据类型(结构体、类) 传递内容 当传递的数据量很大时,会严重影响效率 传递指针 速度快 引用(推荐)
2022-03-14 11:34:40
1005
原创 第二章 C++类和对象
2.1 C++类的定义和对象的创建类的定义 只是一种复杂数据类型的声明,编译后不占用内存空间 定义类时不能对成员变量进行初始化用类创建对象 class 关键字可省略 class Student LiLei; //正确 Student LiLei; //同样正确访问类的成员 栈上创建的对象 Stu stu; 有名字,可以用点号来访问成员变量和成员函数 堆上创建的对象(new) 没有名字,借
2022-03-04 16:24:27
656
原创 嵌入式烧录相关总结
(1)ISP、IAP、ICP三种烧录方式的区别(2)嵌入式开发的JTAG、SWD、Jlink、Ulink、STlink的特点和区别(3)MCU 解锁flash读写保护
2022-02-08 11:42:13
2489
原创 ST-Link使用和配置总结
(1)ST-Link实物参考图(2)ST-Link 引脚介绍和接线方式ST-Link SWD引脚连接方式参考链接1:https://blog.youkuaiyun.com/xinghuanmeiying/article/details/78026561参考链接2:https://blog.youkuaiyun.com/dayou1024/article/details/81184496(3)最新固件下载,安装固件下载网址:https://www.st.com/en/development-tools/stsw-lin
2022-02-08 11:41:53
10783
原创 C语言 - 变量类型的隐式转换和类型提升
C语言 - 隐式类型转换问题在C语言的表达式运算中,如果参与运算的变量属于不同的数据类型,会出现类型的隐式转换和类型提升。#include <stdio.h>#define A 10#define B -20int main(void){ unsigned int a = 10; int b = -20; //表达式1 (a + b > 6) ? printf("a + b > 6\n") : printf("a + b <= 6\n"); //
2021-12-31 10:59:47
605
原创 pclint下载、安装和使用
最近发现有一款C编程语法检查工具:pclint,刚好手头上的项目需要,而且Keil编译器无法检查比较弱,所以就捣鼓了一下,用上了!环境:windows KeilC51
2021-09-22 11:28:39
5223
原创 i++和++i的区别分析总结
i++1、返回一个和原值相等的临时变量,用该,变量进行计算,然后加12、因为表达式的结果是一个临时变量,所以不能获取(i++)的地址,不能作为左值3、好处是:更符合人类思维习惯++i1、变量先加1,然后用该变量计算2、因为表达式是原变量,可以获取(++i)的地址,可以作为左值3、好处是:每次都用这种形式就不用考虑i的类型两者效率对比1、作为单条语句,若i是内置的数值类型,两者完全一样;如果i是一些自定义的类,如iterator,++ i的效率 >= i++.
2020-09-10 11:55:28
333
原创 二进制转换成十进制算法
用较为精简的方式,实现将二进制数转换成十进制数:1 --> 110 --> 2100 --> 4…转换函数如下:int change(int base2){ int temp = 1; int base10 = 0; while(base2) { base10 += temp *(base2%10); base2 = base2/10; temp*=2;//每位的进制位权重 } retur
2020-09-04 20:55:28
1542
原创 CAN总线通信学习笔记
CAN总线通信学习笔记完整笔记链接:https://mubu.com/doc/67Rn6yaozhSCAN总线笔记目录定义底层原理CAN信号传输发送接收CAN总线结构、特点、分类CAN总线结构CAN总线特点多主控制非破坏性位仲裁机制系统的若软性通信优势数据传输方式错误检测、错误通知和错误恢复功能故障封闭功能CAN总线协议分类ISO11898标准ISO11519-2标准CAN总线通信网络结构内容示例:...
2020-07-21 21:01:51
224
原创 十大排序算法之插入排序(C语言程序)
十大排序算法之插入排序(C语言程序)在排序算法中,插入排序算是比较直观易懂的算法,可以想象成玩扑克牌时把手里的牌一张张进行排序(抽出一张牌,然后插入到适合的位置)。平均时间复杂度:O(n2)最好情况:O(n)最坏情况:O(n2)空间复杂度:O(1)排序方式:in-place稳定性:不稳定算法过程:从第一个元素开始,把第一个元素当做有序序列;下一个元素取出作为插入值,并与前一个...
2019-10-23 20:19:54
294
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人