自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 STM32启动文件内容详解

前言使用STM32单片机时候,必须导入对应型号的启动文件。这个笔记在于对于启动文件的内容的分析,基于基本的stm32F103型号的单片机的启动文件stm32f10x.hd.s进行进行分析。具体的参考资料和分析参考《STM32F10X-中文参考手册》中的第九章-中断和事件:表 55 其他 STM32F10xxx 产品(小容量、中容量和大容量)的向量表; MDK 中的帮助手册—ARM Development Tools:用来查询ARM 的汇编指令和编译器相关的指令。启动文件简介启动文件由ARM的汇编语言编

2021-01-14 16:58:13 753

原创 多任务--协程 基于python实现

协程协程,又称微线程,纤程。英文名Coroutine。x协程的定义协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程, 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,可以在任何地...

2020-04-27 10:44:32 371

原创 C++STL实用技术总结

STL(标准模板库)理论基础STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器)。容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采 用了模板类...

2019-12-16 18:15:08 255

原创 算法和数据结构总结---循环链表

前言:循环链表不同于单向链表和双向链表,它比起前两者具有更高的灵活性,和单向链表和双向链表不同,循环链表不用担心遍历到链表的尾巴而无法进行遍历下去。循环链表的最后一个元素不是指向NULL而是指向头部,这样的逻辑结构使得循环链表的每一个元素既可以看为头结点也可以看为尾结点,下图为循环链表的主要两种类型。双向链表接口的公共接口void clist_init(DList*list,void (...

2019-11-28 18:30:00 659

原创 算法和数据结构总结---双向链表

前言:在算法和数据结构总结—单链表中总结数据结构中最基本的结构—单链表,但是单链表正如它的名字一样,只能单向的的遍历结点。

2019-11-24 14:14:10 354

原创 算法和数据结构总结---单链表

链表链表可以说是一种很基本的数据结构,链表通常以一种特定的组合将元素链接在一起,以便可以对元素实现方便的管理维护。这一点和我们常常使用的数组很相似,但是链表在最多的情况下可以带来比链表更为优势的操作,链表通常是在系统需要的时候动态开辟的,换句话说链表的存储空间是在程序运行的时候在进行分配的,在许多的时候,我们无法明确的确定数据的大小直接在编译前分配内存,这种动态分配的方法也是链表的优势之一。单...

2019-11-22 19:25:02 586

原创 算法中的递归

前言:递归是一个很强大和奇妙的方法,在计算机当中递归算法很强大的算法,它可以使解决问题的方法变得相当简单,递归是通过递归函数实现的,计算机通过不停的调用递归函数,使得问题分解成小型的问题,而这些问题又和递归函数相同,使得代码变得优雅和简洁。递归分类递归在分类分为基本递归和尾递归基本递归:基本递归是一种强大的方法,如果一个问题可以通过调用自身来得以解决,那么这个问题就带有递归的特性,那么...

2019-11-21 17:29:15 381

原创 C++的异常处理机制

前言异常是一种程序控制机制,与函数机制独立和互补:函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它依附于栈结构,却可以同时设置多个异常类型作为网捕条件,从而以类型匹配在栈机制中跳跃回馈.异常设计目的:栈机制是一种高度节律性控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动,从一开始,异常就是冲着改变程序控制结构,以适应面向对象程序更有效地工作这个主题...

2019-11-20 13:56:04 311

原创 C++的类型转化

前言在C语言中我们谈及类型转化,不外乎有有两种隐式转化,编译器自动把你进行类型转化和强制转化。自己手动的对类型进行了转化。但是C++中对于类型的转化有了更严谨和更强化的分类。1 类型转换名称和语法C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a 颇有一种一招鲜吃遍天的感觉。C++风格的类型转换提供了4种类型转换操作符来应对不同...

2019-11-19 16:08:34 157

原创 c语言库函数总结----stdlib.h库

思维导图大纲前言stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。double atof(const char *str)库函数 stdlib.h函数原型 double atof(const char *str)//时间:2019年11月15日//作者:Kroner//编译环境:VS 2019//库函数 stdlib.h//函数原型 do...

2019-11-19 12:31:28 21532 1

原创 c语言库函数总结----ctype.h库

思维导图大纲前言C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。在给出这个函数库的功能后,我们首先对字符的类型进行分类:序号字符类 & 描述 1数字完整的数字...

2019-11-18 13:00:42 2187 1

原创 c语言库函数总结----math.h库

前言上回总结了string.h常用的字符串操作函数,这次总结一下另外的一个库函数math.h和数字运算有关联的库。double acos(double x)函数原型:double acos(double x)功能:返回以弧度表示的 x 的反余弦。arcos(x);//时间:2019年11月15日//作者:Kroner//编译环境:VS 2019//库函数 math.h//...

2019-11-17 19:07:01 15153 2

原创 c语言库函数总结----string.h库

前言string.h库函数是工程中很常用的字符串操作库函数。在这篇博客中总结一下常用的几个string.h有关的库函数,在工程中避免重复造轮子,换句话说提高工程效率(* ̄︶ ̄)。char *strcpy(char *destin, const char *source);//函数原型:char *strcpy(char *destin, const char *source);//函...

2019-11-15 19:46:08 2803

原创 C语言指针知识体系搭建

指针知识体系搭建前言先从整体上把握指针的知识体系。然后突破一级指针、二级指针、多级指针。指针强化铁律1:指针是一种数据类型既然指针是一种数据类型,那么指针也是一种变量,占有一定的内存空间,存储一定的值。问题:那么指针的内存大小是多少了?//测试指针的内存大小#include "stdlib.h"#include "stdio.h"int main() { char*...

2019-11-14 17:52:41 303

原创 C语言的数据类型小结

1 “类型”是对数据的抽象“类型”是对数据的抽象类型相同的数据有相同的表示形式、存储格式以及相关的操作程序中使用的所有数据都必定属于某一种数据类型在C语言中的数据类型可以分为一下几类:在C函数中数据类型是一个很重要的概念,所有的变量和常量都必须数据类型,而C语言的精华指针也是一种数据类型。那么数据类型的本质到底是什么,我们用int float double...这些数据类型来定义一...

2019-11-14 13:13:12 409

原创 HTML学习01

学习目标:了解常用浏览器掌握WEB标准理解标签语义化掌握常用的排版标签掌握常用的文本格式化图像链接等标签掌握三种列表标签掌握表格标签掌握表格标签掌握表单标签掌握H5新增表单和表单属性认识网页网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。思考: 网页是如何形成的呢?一个精美的网页的形成,必须经过前端工程...

2019-11-13 21:10:05 877

原创 Web API

学习目标:掌握API和Web API的概念掌握常见浏览器提供的API的调用方式能通过Web API开发常见的页面交互功能能够利用搜索引擎解决问题typora-copy-images-to: mediaWeb APIWeb API介绍API的概念API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序...

2019-11-12 15:47:32 337

原创 C++ 函数模板和类模板

函数模板和类模板前言:C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。我们举一个例子来说...

2019-11-06 19:18:02 541

原创 C语言基础入门

C语言是几乎所有计算机和信息专业大学上的第一门编程语言的课程的。这个网上的资源也相当多,多也常常意味难以选择,在这里总结一下一些关于我学习C语言当中的资料和一些推荐入门的资源。1 工欲善其事必先利其器在编写C语言前必须有一个好的编译环境,目前在学习当中用的编译环境,在Windows下肯定是宇宙最强IDE Visual Studio 目前已经更新到了2019版本。下载链接。如果下载被限速的话,...

2019-10-31 13:14:56 417

原创 C++多态总结

1 多态在问题引出(赋值兼容性原则遇上函数重写)在上节中我们说明了C++的继承的时候,说明C++的继承类型兼容性原则:子类对象可以当作父类对象使用子类对象可以直接赋值给父类对象子类对象可以直接初始化父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象但是如果子类定义了与父类中原型相同的函数会发生什么?函数重写的概念在子类中定义与父类中原型相同的函数,函数重写只发生在...

2019-10-30 20:29:05 484

原创 C++继承和派生

1 继承概念面向对象程序设计有4个主要特点:**抽象、封装、继承和多态性。**我们已经讲解了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础。要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特征——继承性和多态性。这个文章主要介绍有关继承的相关知识,多态性将在后续文章当中讲解。继承性是面向对象程序设计最...

2019-10-28 17:34:36 713

原创 C++运算符重载技术

前言:C++语言给使用提供重载机制,大大提高的使用的灵活性。1 函数重载概念1 函数重载概念函数重载(Function Overload)用同一个函数名定义不同的函数当函数名和不同的参数搭配时函数的含义不同函数重载的判断标准参数个数不同参数类型不同参数顺序不同注意:不能把返回值作为函数重载的条件,原因是编译器在编译时不会去判断函数的返回类型,函数只有调用后,编译器才会...

2019-10-26 18:14:42 372

原创 C++面向对象模型分析(1)

前言:在上篇文章中已经讨论了C++的静态成员变量和静态的成员函数。

2019-10-21 12:16:07 303

原创 C++静态成员变量成员函数

前言:每一个对象都有自己独有的变量和函数,有没有一些属性是共有,归所有对象拥有。(比如中国人这个类,所有由中国人这个类所创建的对象的国籍都是中国)静态成员变量成员函数静态成员变量成员函数关键字 static 可以用于说明一个类的成员,静态成员提供了一个同类对象的共享机制。把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员。静态成员...

2019-10-20 20:41:17 174

原创 C++对象的动态建立和释放new/delete与malloc()/free()

前言:相比较于C语言使用malloc()函数和free()函数来管理动态内存,C++引入了new和delete关键词来管理动态内存,而new和delete相比较于malloc()函数和free()函数有什么不同了。1 new和delete基本语法在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间...

2019-10-20 17:38:09 430

原创 C++构造和析构函数知识点总结

前言:创建一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。注意,类的数据成员是不能在声明类时初始化的。为了解决这个问题,C++编译器提供了构造函数(constructor)来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。...

2019-10-20 16:34:03 627

原创 C++引用专题总结

1引用(普通引用)引用是C++对C语言的一次扩展。在讲引用之前,我们先回顾一下变量的定义:变量名其实一个一段连续内存的名称,相当于一个标号(公寓中房子的户主名,我们可以通过户主的名字来找到户主的地址。程序中通过变量来申请并命名内存空间 ,通过变量的名字可以使用存储空间。那么一个地址当中只能拥有一个别名吗?或者一个房屋的户口本上的户主只能有一个吗?在C++中引入 引用 的概念,可以对一段内存取...

2019-10-18 20:15:49 289

原创 C/C++中的const分析

const基础知识(用法,含义,好处)先附上一段C语言代码#include "stdlib.h"#include "stdio.h"int main(){ const int a = 1; int const b = 1; const int *c = 1; int * const d = NULL; const int * const e = NULL; return 0...

2019-10-18 11:37:33 230

原创 C++编译器和C语言编译器的一些不同之处(1)

C语言和C++语言关系说起C语言和C++之间的最大区别,大多数的书籍上写明是编程的思维不同,C语言是面向过程的语言,而C++是面对对象的语言。那什么是面向过程的思想? 什么是面对对象的思想?面向过程思想 设计思路:–自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。 程序结构: – 按功能划分为若干个基本模块,形成一个树状结构。–&nbs...

2019-10-18 00:17:34 1635

原创 算法题目1--大数的阶乘

这个问题是一个朋友聊天的时候突然聊到,在计算C语言中如何计算大数的阶乘。10!在C语言完全没问题,但是如果是100!1000!的话如何实现。当时我不加思索给出下的代码://大数的阶乘 100! 错误#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#in...

2019-10-16 23:35:55 248

原创 C语言内存四区的概念

An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.A postfix expression followed by an expression in square brackets [] is a subscripted designation of an element of an ar

2019-10-16 21:10:30 807

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除