自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Git的学习笔记4

小张和啊亮都git pull,两个人本地都获取了V1版本的代码,然后啊亮在本地将代码更新到了V3,然后将V3 push到了远程,git server发现V3就是基于V1版本修改的,于是git server将版本更新到V3接着小张将本地基于V1的代码更改为V2后,也push到远程,此时git sever发现V2的代码基于V1修改的,并不是基于V3修改的,于是会报错,产生冲突(如果不报错,啊亮提交的V3就全没了)

2024-06-08 20:38:09 191

原创 Git的学习笔记3

git checkout -- 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的--不能去掉,否则成切换分支的命令了git reset HEAD 把git add之后,暂存区的内容全部撤销git reset --hard commitid 把提交到本地仓库中的代码改动进行回退git reflog 查看HEAD指针的改动日志git push -f 强制推送本地仓库代码到远程仓库git diff HEAD -- 查看工作区file文件和仓库中该文件最新版本的代码有什么区别。

2024-06-08 17:47:02 387

原创 Git的学习笔记2

HEAD指针:在仓库的每个分支上,git log会记录所有提交的信息,每次提交都会生成一次记录以及一个commit id,HEAD指针指向的就是当前分支最新的一次修改,我们可以通过调整HEAD指针指向不同的commit id,来任意切换到不同的版本上。git clone之后,会把远程仓库的文件拉取一份到本地仓库,然后给远程仓库起了个名字,默认就叫origin(名字可在config中改),然后在本地仓库生成默认分支master(main),与远程的master(main)分支对应。本地就有一个仓库的文件夹。

2024-06-08 17:06:13 234

原创 Git的学习笔记1

没有本地仓库,只有远程仓库;所有的版本控制相关操作都是在SVN Server上进行,client和server必须通过网络连接,client才能发送处理请求以及访问server上代码,client没有本地仓库,只能提交到远程仓库有本地仓库和远程仓库;不需要网络,可以由各自的本地仓库管理代码版本,本地仓库记录了本地所有的代码的修改和提交。最后合并到远程仓库上。

2024-06-08 16:22:52 316

原创 C++学习笔记6

继上篇的剖析,这篇开始手写移植Nginx内存池。

2024-05-29 13:37:32 189

原创 C++学习笔记5

116102416ngx_alignsizeofngx_pool_t2sizeof11uintptr_tuintptr_t1uintptr_t1ngx_alloc申请的内存不大于4095则调用ngx_palloc_small,分配小块内存。否则size>4095调用ngx_palloc_large=>ngx_alloc=>malloc,申请大块内存。!!当前内存池的块不够分配。

2024-05-28 15:04:25 778

原创 c++笔记记录4

unique_lock就是删除拷贝构造赋值重载,但是加了右值引用,对临时变量可以拷贝构造赋值重载,相比与scope_ptr;​生产者,消费者线程模型,不仅可以使用在简单的临界区代码段的互斥操作中,而且还能用在函数调用的过程中。竞态条件:多线程程序执行结果是一致的,不会随着cpu对线程不同的调用顺序而产生不同的运行结果。​ 1、线程间的互斥:竞态条件=》临界区代码段=》互斥锁mutex 轻量级的无所实现CAS。auto :可以根据右值,推导出右值的类型,然后左边变量的类型也就也已知了。

2024-05-27 22:27:06 383

原创 设计模式——单例模式(懒汉,饿汉)

1.单例模式:一个类不管创建多少对象,永远只能得到该类型一个对象的实例​ 常用:日志模块,数据库模块//饿汉:class singleton{public: //用户可以通过该接口调用静态对象 static singleton* getInstance(){//#3获取类的唯一实例对象的接口方法 return &instance; } private: static singleton instance; //#2定义一个唯一的类的实例对象 singleton(){}//#

2024-05-26 18:58:36 117

原创 c++笔记记录3

PFUNC 是一个指向函数的指针,该函数接受一个类型为 A1 的参数并返回类型为 R 的值。​ bind2nd :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第二个参数上,从而创建一个新的一元函数对象。​ bind1st :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第一个参数,从而创建一个新的一元函数对象。下面都是返回一个第一个大于70的元素,如果没有这样的元素,则迭代器it1/2将等于vec.end()。

2024-05-21 22:23:23 820 1

原创 c++笔记记录2

线程A和线程B访问一个共享的对象,如果线程A正在析构这个对象的时候,线程B又要调用该共享对象的成员方法,此时可能线程A已经把对象析构完了,线程B再去访问该对象,就会发生不可预期的错误。1.不带引用计数的智能指针 auto_ptr ,scoped_ptr,unique_ptr。由于weak_ptr可以不占资源引用计数,也就是解决带引用计数的智能指针的交叉引用问题。所以我们在定义对象的时候,用强智能指针,引用对象的时候,使用弱智能指针。2.带引用的只能指针 shared_ptr,weak_ptr。

2024-05-14 20:44:23 257 2

原创 c++笔记记录1

​ 右值引用参数的拷贝/赋值构造,直接通过修改指针mptr=str.mptr;用临时对象拷贝构造一个新对象 Test t=Test(30), 相当于Test t(30)直接构造,且不用对临时对象的析构。5,接收返回值是对象的函数调用的时候,优先按初始化的方式接收,不要按赋值的方式接收。4,函数返回对象的时候,应该优先返回一个临时对象,而不要返回一个定义过的对象。8,std::move(),移动语义,将左值强转成右值引用类型。可以右值绑定到一个右值引用上。2,函数调用,实参=》形参, 是初始化的过程。

2024-05-13 21:27:05 307 1

原创 UCOS软件定时器自学笔记

首先先创建两个tmr的结构体`OS_TMR tmr1; //定时器1OS_TMR tmr2; //定时器2创建回调函数void tmr1_callback(void *p_tmr, void *p_arg);//定时器1回调函数void tmr2_callback(void *p_tmr, void *p_arg);//定时器1回调函数进入主函数以后配置各种外设为了避免滴答定时器的影响设置了INTX_DISABLE();INTX_ENABLE();[上述这步不是必要的]

2021-09-03 16:03:10 211

原创 基于STM32F103C8T6上传到MQTT服务器

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片

2021-07-30 19:40:45 3319 5

原创 PYTHON学习笔记3 内置函数 set集合与dict字典的区别和用法

PYTHON学习笔记3 set集合

2020-08-11 13:44:05 221

原创 STM32F103 GIPO口的寄存器 GRH、CRL、ODR理解与使用___2

STM32F103 GIPO口的寄存器 GRH、CRL理解与使用(这篇文章是接我上一篇文章的)https://blog.csdn.net/ddddd_y/article/details/107915757在这里我们可以看到,CNF是一个控制这个io口实际上输出的是什么输出,然后我们在回到这里8<<12 = 0x80 =10 00 … 00控制寄存器的MODE是输入模式然后10 在这里决定的是输入模式的类型。这里的8<<12 就直接让io口表达的是 输入模式:上拉

2020-08-10 17:26:24 1331

原创 STM32F103 GIPO口的寄存器 GRH、CRL理解与使用___1

STM32F103 GIPO口的寄存器 GRH、CRL理解与使用引入:在我们初学STM32的时候经常看代码的时候都会遇到过一些看不懂的东西:反正我一开始确实不知道这个怎么去理解,下面来说说吧一、关于IO口的CRH和CRL的不同:首先在STM32 里面IO口有A-G个,然后分的引脚为0-15一共16个引脚(pin),我们将0-7个pin称为低八位对应CRL,8-15称为高八位对应CRH。形象记忆就是CRhigh(8-15pin)CRlow(0-7pin)。二、我们以CRL为例子给大家介绍:在图

2020-08-10 16:55:52 1073 1

原创 PYTHON 入门学习笔记 if、if..else..、if..elif..else.. 、while 、for...in、while..else和 for ..else 里面的知识点总结和综合运用

PYTHON 入门学习笔记本人只是刚刚开始学习Python,希望跟大家交流,希望大家指出缺点也分析一下自己的笔记Python里面其实跟c差不多,都有选择分支和循环体可是还是有一些细微的差别的。知识点一 if 、if…else 、if…elif…else这个就是跟c差不多,就是简单的选择单独分支:if 就是你是否符合里面的条件,不符合,跳过不执行你直接执行下面的语句双分支:if …else 就是,if 条件不符合了,就能直接执行else 里面的东西,多分支:if …elif…else 就是

2020-08-09 16:35:03 260

原创 Python的入门学习笔记

python入门学习笔记我只是新手入门小白,第一次写博客,总结一下自己学习的一些感受和经验,欢迎老手指正, 不喜欢的互喷。感受最近刚刚去学习python,让我感觉很深的是,python和c++的基本语法都是差不多的,最大的好处的就是python十分的便利和简洁,没有像c++那么多的语法要求。易错点总结刚开始学习,就搞不清print() 和end=‘ ’的区别因为c+没有这样的东西,然后后来大概明白了,就是print() 有一个换行的功能,就等于隐含了/n (换行符) 如果你在里面包含了一个en

2020-08-08 11:37:25 192

OLED_IIC.7z

STM32 c8t6 的oled显示学习 (设 计 logo 为 truth)

2020-08-06

空空如也

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

TA关注的人

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