0 非常规自我实现

尚未进行身份认证

我要认证

努力学习

等级
TA的排名 36w+

Git详解之分支管理

文章目录1. 分支管理1.1 创建与合并分支1.2 解决冲突1.3 分支管理策略1.4 bug和feature分支1.5 多人协作1.6 Rebase2. 标签管理2.1 创建标签2.2 操作标签1. 分支管理分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!分支在实际中有什么用呢?假设你准备开发一个新功能,但

2020-08-09 08:59:07

堆排序详解(包会)

二叉堆(也叫堆)是一个部分排序的二叉树,其排序规则体现在它的堆序性质上:最大堆和最小堆,最大堆就是其对于任一节点,每个节点的键值都大于等于它的孩子节点,所以根节点键值最大。最小堆则相反。堆是一棵完全二叉树,具备完全二叉树的性质,可以用一个数组表示而不需要指针,在起始位置为 0 的数组中任一位置 i 上的元素,其左儿子在位置 2*i+1 上,右儿子在左儿子的后面邻近位置上,它的父节点则在位置 (i-1)/2。因此,一个堆数据结构将由一个数组(不管键值是什么类型)、一个代表最大容量的整数以及当前的堆大小组成。

2020-08-08 08:23:37

Git详解之远程仓库

文章目录远程仓库1.添加远程库2.从远程库克隆远程仓库到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现在所学的Git物超所值,将来绝对不会后悔,同时为了打击已经不幸学了SVN的童鞋,本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三…

2020-08-07 09:58:52

Git详解之本地仓库

文章目录附加:Git指令大全1.创建版本库1.1.文本的编辑和提交2.时光机穿梭2.1.版本回退2.2.工作区和暂存区2.3.修改2.3.1.管理修改2.3.2.撤销修改2.3.3.删除文件在上一篇博客中已经要求大家到官网去下载Git,当你看这篇博文的时候你要打开Git Bash 。你的界面要处于这种状态,接下来,我将手把手教你学Git。附加:Git指令大全1.创建版本库什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管

2020-08-06 21:22:22

Git详解之前世今生

本Git系列博文都是根据廖雪峰Git教程而写的,是在廖雪峰的基础上加了一些我自己的理解1.Git的诞生很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代

2020-08-05 09:08:30

手把手教你学双链表

由于上上一篇博文讲解了单链表,双链表也就不难了,但由于上上一篇博文立下了一个flag,所以转载了一篇比较不错的博文。(doge)当然,单链表存在一定的弊端,就是查找数据和删除数据的时候比较麻烦,而双链表的出现就是为了解决它的弊端:双链表的引入是为了解决单链表的不足:(1)双链表可以往前遍历,也可以往后遍历,具有两个方向双链表的节点 = 有效数据 + 两个指针(分别指向前一个节点和后一个节点)双向链表的图形结构描述:struct double_list

2020-08-03 19:44:10

Git Bash界面的美化(一看必会)

最近学习了Git,但是发现这个字体以及界面太让人难受了,真的有点受不了了,一看这界面都没有心思去学,然而我在全网搜了一下,发现他们讲的一点都不友好,接下来的教程,包教包会。红色箭头所指向的文件就是我创建的一个根目录,里面就有git的版本库和工作区。这个大家学了git的都知道,接下来就是配置字体和背景颜色。一般情况下,你新建一个Git版本库,都会默认建在C/user/(user names)这个文件中,所以,我们设置字体和背景颜色的文件也要在这个路径下。.minttyrc文件和china文件在同一

2020-08-03 09:30:56

手把手教你学单链表

本文用到的图片来自csdn中优秀的博主。为什么我们要学习链表呢?链表到底有什么好处。链表主要有以下几大好处:1、解决数组无法存储多种数据类型的问题。2、解决数组中,元素个数无法改变的限制。3、数组插入和移动元素的过程中,要对元素进行大范围的移动,很耗时间,效率也不高。而链表却可以很好地弥补数组不足的缺点。从这幅图我们得出以下信息:这个简单链表的构成:头指针(Header),若干个节点(节点包括了数据域和指针域),最后一个节点要指向空。实现原理:头指针指向链表的第一个节点,然后第一个节点

2020-08-01 20:31:07

全排列的多种实现方法

先来看看本文的思维导图。1.定义从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。公式:全排列数f(n)=n!(定义0!=1)2.代码1.用数组实现#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int count = 0;//用来计算有多少个排列void Swap(int *p1,int* p2){ int temp = *p1;

2020-07-30 08:42:30

为什么你学不会递归?告别递归,谈谈我的经验

可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!可能也有一大...

2020-07-28 08:14:20

史上最详细的快速排序算法

史上最详细的快速排序算法最近学了快速排序算法,在csdn上找了很多篇博客,虽然代码可以执行正确,但是解释却有点“官方”,有很多细节,很多需要注意的地方并没有写到,故此,我写了这篇博客,看了我这篇博客,你绝对会恍然大悟。先给大家看看清楚明了的快速排序的动态图。在详细讲解之前,先来看看代码,已检验过,无任何问题。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//快速排序算法voi

2020-07-27 09:08:56

printf函数的实现

printf函数的实现自己之前做了一个用于串口发送数据的函数,觉得调用的时候有点麻烦,于是想着自己用printf函数去实现用于串口发送数据。在csdn上找了一些,发现没有自己想要的,有也是有一些错误的,于是,我在他们的基础上做了一个printf函数,包教包会。还是老习惯,先来看看本片文章的思维导图。1.堆栈以及函数调用的基础知识1.堆栈这里对堆栈的定义以及一些性质我就不过多讲解了,我只将和printf函数有关的知识,栈又叫堆栈,它的生长方向既可以向上生长,也可以向下生长向上生长的最主要的代表就是

2020-07-23 15:42:13

cpu是如何响应中断

cpu是如何响应中断话不多说,先来看看本篇文章的思维导图。1.NVIC的理解在讲解cpu是如何响应中断之前,我们先来讲解以下NVIC,可能不是讲的很全,只是挑一些比较深的东西。先来看看NVIC的结构。这是NVIC的控制器,其实NVIC在内存中就是一个接口芯片,通过译码电路连接到总线上,可以把NVIC想象成一个内存块。这些寄存器就是控制NVIC的主要的寄存器,我们对NVIC的配置大部分都是通过对上面的寄存器进行配置以实现我们想要的功能。每个寄存器的功能可以去CORTEX-M4手册上去看看。

2020-07-20 20:44:17

HC-05蓝牙模块的理解

HC-05蓝牙模块的理解最近在玩蓝牙模块,看了看以前玩的时候用的是串口1,想用串口2试试,然而调试了将近一下午都没有调试出来,最后发现竟是一个字母的错误,但在这期间却又学到的新的东西,也有所感悟,故作了这么一篇文章。先给大家看一看本文的思维导图。一.代码1.代码的移植其实本质都是一样的,就是换一下引脚,配置一些不同的参数而已,可以模仿串口一的程序来写。一个头文件和源文件。以上就是蓝牙模块的所有代码了, 因为printf函数已经给串口1用了,所以我自己又做了一个蓝牙发送数据的函数,很简

2020-07-17 16:15:49

STM32之stm32f4xx_conf.h讲解

stm32f4xx_conf.h文件的讲解在我的上一篇博客中又讲解到stm32f4xx.h文件的讲解,在那个头文件中包含了4个头文件。这四个头文件中第一个是非常难的,如果你32学的不是很扎实的话劝你们最好别去碰,涉及很多汇编和底层知识你只需要知道每次你新建一个项目的时候你把以下四个头文件加到你的项目文件夹下即可。其他的你也就别管了。第二个头文件这个在我之前写过的博客中已经提到,并且也很简单,第三个头文件功能就是为关键字创立一个新的名字,还有其他的一些参数,不是很难。我们今天主要讲解一下stm3

2020-07-10 16:13:25

stm32f4xx.h文件的详解

stm32f4xx.h详解我的上一篇博客中详细讲解了system_stm32f4xx.c文件,在那个文件中,包含了唯一一个头文件,而这个头文件在开发过程中起到至关重要的作用,如果没有这个文件,就像大厦没有了根基,是肯定会倒的,所以,今天我们来深入了了解一下这么重要的文件它的内容到底是怎样的。受先我们先来看下这个文件的思维导图,以及该文件的介绍。这段文字已经大概地介绍了一下这个文件的内容,接下来,我们详细解释。首先,在这里大家可能有点懵逼,这是个什么东西,这就是混合编程的一种用法,在这里我们并没

2020-07-09 15:26:22

STM32之system_stm32f4xx.c的理解

对system_stm32f4xx的理解上一篇博客解释了stm32的启动文件,在启动文件中,在进入__mainC库函数之前,进入了SystemInit函数,如下图所示。那,今天我们就来探究一下这个函数的功能是什么,这个函数在这个文件system_stm32f4xx.c中,所以我们今天所要讲解的内容就是system_stm32f4xx.c文件。首先,我们先来看下这个文件的思维导图。This file provides two functions and one global variable to

2020-07-08 17:04:10

STM32之启动文件的详解

本文以STM32F407为例,介绍STM32的启动文件。如有解释不正确的地方,还请大家留言评论。由于启动文件中涉及到一些汇编的知识,所以在讲解的过程中会补充一些汇编的知识。一般而言,系统上电后第一个执行的是由汇编所编写的启动文件,其主要工作为以下三部分:(1)初始化堆栈指针SP(2)初始化中断向量表(3)初始化PC指针,令其=Reset_Handler配置系统时钟调用C库函数_main初始化用户堆栈,从而最终调用main函数进入C的世界一.初始化堆栈指针上图就是初始化堆栈指针的代码,最上面

2020-07-07 15:37:05
勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。