摘要: 1.栈上分配: 在执行函数之前,函数内部的局部变量都可以在栈上创建,函数执行完毕之后会自动释放 2.静态全局存储区 全局变量和静态变量 3.堆上分配 由程序员分配,好比new,free,malloc free 1.申请方式不同: 栈是由操作系统自由分配和释放,堆是由程序员手动申请释放 2.申请大小的 阅读全文
posted @ 2025-08-31 19:16 Lè_Sage 阅读(53) 评论(0) 推荐(0)
摘要: 在文件a.c定义和声明变量a,int a=20;//这里会建立存储空间 通过extern 在b.c文件里面声明a之后就可以使用,记住不能初始化 Extern int a;//正确 Extern int a=30;//错误 注意:如果想要定义一个变量被其他文件使用,即定义一个全局变量,这个变量不能定义 阅读全文
posted @ 2025-08-31 19:14 Lè_Sage 阅读(20) 评论(0) 推荐(0)
摘要: 前置条件: 固件库下载: 1.https://www.st.com.cn/content/st_com/zh.html 在ST公司官网: 2. 3. 4. 5.下载芯片包 https://www.keil.arm.com/ 搜索芯片型号 1.新建文件夹,内部结构如下: CMSIS:Cortex微控制 阅读全文
posted @ 2025-08-31 18:38 Lè_Sage 阅读(56) 评论(0) 推荐(0)
摘要: STM32启动方式(自举模式)有三种:从用户闪存启动(Flash)、从系统存储器启动、从内部SRAM启动。 阅读全文
posted @ 2025-08-31 16:22 Lè_Sage 阅读(14) 评论(0) 推荐(0)
摘要: 构造函数(或称构造方法)和析构函数(或称析构方法)是类中比较特殊的类方法,从名字可以看得出来,构造函数专注于在对象创建的初期的构造工作(初始化类对象),具体来讲就是对对象各个成员的初始化,而析构函数专注于对象销毁期间的解构工作(销毁对象并释放空间),具体来讲就是对对象所占据的各种资源的善后处理。 点 阅读全文
posted @ 2025-08-30 20:34 Lè_Sage 阅读(25) 评论(0) 推荐(0)
摘要: 1)gets函数可以接受空格,scanf遇到空格就会结束 2)gets函数仅用于读入字符串;scanf为格式化输出函数,可以读入任意C语言基础类型的变量值,而不是仅限于字符串(char)类型 3)gets的返回值为char型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL; scanf返 阅读全文
posted @ 2025-08-30 19:25 Lè_Sage 阅读(23) 评论(0) 推荐(0)
摘要: define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错。 typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typede 阅读全文
posted @ 2025-08-30 19:21 Lè_Sage 阅读(40) 评论(0) 推荐(0)
摘要: 1.在c语言中结构体是不允许有函数,在c++中可以, 2.C语言结构体是不可以继承,c++可以继承 3.C语言中结构体的使用必须要用别名或者使用struct,不能直接使用: Struct student { Int age; Int num; Inr sex; } Typedef struct st 阅读全文
posted @ 2025-08-30 19:18 Lè_Sage 阅读(10) 评论(0) 推荐(0)
摘要: 类(class)是C++有别于C语言的最重要的概念之一,正是因为有了类的概念,C++才拥有了所谓面向对象(OOP,即Object Original Programming)的编程模式,那么类究竟是什么呢? 单从语法层面讲,类其实就是增加了函数的结构体。而从逻辑层面讲,类是增加了数据行为的结构体。类跟 阅读全文
posted @ 2025-08-29 18:30 Lè_Sage 阅读(12) 评论(0) 推荐(0)
摘要: Lambda函数,亦称为Lambda表达式、匿名函数等,是一种函数对象,Lambda函数可以让函数像普通变量一样进行赋值、传递、函数返回等操作。C++中的Lambda函数经常用来解决如下问题: 使得程序更加简洁,尤其对于一次性使用的函数。 有些库函数要求传递的参数是一个函数,但是你又不想写一个函数出 阅读全文
posted @ 2025-08-29 18:10 Lè_Sage 阅读(25) 评论(0) 推荐(0)