自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hongggggggg

bug制造者

  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 每日一题之编辑距离

编辑距离

2023-07-31 10:34:21 151

原创 每日一题之两个字符串的删除操作

两个字符串的删除操作

2023-07-27 10:28:12 181

原创 每日一题之不同的子序列

不同的子序列

2023-07-26 20:11:57 303

原创 每日一题之判断子序列

判断子序列

2023-07-25 14:30:45 132

原创 每日一题之最大子数组和

最大子数组和

2023-07-18 09:00:00 82

原创 每日一题之最长公共子序列

最长公共子序列

2023-07-17 19:47:21 78

原创 每日一题之最长重复子数组

最长重复子数组

2023-07-13 11:02:29 171

原创 每日一题之最长递增子序列

最长递增子序列

2023-07-05 08:30:00 74

原创 每日一题之最长连续递增序列

最长连续递增序列

2023-07-04 20:29:05 245

原创 查找所有文件内容中是否包含某个字符串

查找所有文件内容中是否包含某个字符串

2023-07-04 10:30:38 350

原创 每日一题之买卖股票的最佳时机含手续费

买卖股票的最佳时机含手续费

2023-06-29 20:36:15 70

原创 每日一题之最佳买卖股票时机含冷冻期

最佳买卖股票时机含冷冻期

2023-06-28 20:28:41 61

原创 每日一题之买卖股票的最佳时机IV

买卖股票的最佳时机IV

2023-06-27 20:37:02 101

原创 每日一题之买股票的最佳时机III

买股票的最佳时机III

2023-06-26 20:36:02 67

原创 每日一题之买卖股票的最佳时机II

买卖股票的最佳时机II

2023-06-15 20:33:26 34

原创 每日一题之买卖股票的最佳时机

买卖股票的最佳时机

2023-06-13 20:41:59 458

原创 每日一题之打家劫舍III

打家劫舍III

2023-06-13 09:47:03 43

原创 每日一题之打家劫舍II

打家劫舍II

2023-06-08 20:10:48 451

原创 每日一题之打家劫舍

leetcode打家劫舍题解

2023-06-06 20:13:21 445

原创 git新建一个没有commit的分支

git新建一个没有commit的分支。

2023-04-26 14:30:39 124 1

原创 ubuntu搭建samba服务

linux搭建samba服务器

2023-03-21 10:17:05 66

原创 宏定义的嵌套

宏定义的嵌套

2023-01-12 11:37:46 2196 3

原创 查看动态库依赖信息

使用ldd命令可以打印依赖的共享库列表,可以方便我们确定可执行程序的动态库信息;常用选项:--version:显示ldd的版本ldd --version-v:显示详细链接信息ldd -v test-u:显示没有使用的依赖ldd -u test...

2022-01-15 10:00:00 441

原创 动态库的生成和使用

生成动态库文件gcc -fPIC -shared *c -o libTest.so-fPIC选项​ 这是一个编译选项,PIC是Position Independent Code的缩写,表示要生成位置无关的代码,即加载器把其加载到内存任何位置,其代码均可正常运行,所以代码中都是使用的相对地址,这是动态库所需要的一个特性。-shared选项这是一个链接选项,目的是为了告诉gcc生成动态库而不是可执行文件;使用库文件进行编译gcc test.c -o test -lTest -L.

2022-01-14 09:30:00 242

原创 静态库文件的生成和使用

基本介绍:在上一篇文章中我们提到过,静态库其实就是.o目标文件的集合包,如果我们要制作一个静态库的话,首先要先将源文件编译生成.o目标文件,然后再使用ar命令将目标文件打包成库文件;ar命令:作用:建立或修改备存文件,或是从备存文件中抽取文件,常见的应用是,使用ar命令将多个目标文件.o打包为静态链接库文件.a。常用选项:-r:用于将文件插入库文件中-c:用于建立库文件-t:显示库文件中所包含的文件-d:删除库文件中的成员文件静态库文件的生成:

2022-01-13 09:30:00 531

原创 动态库与静态库

什么是库:​ 库是将一些代码编译成目标文件后打包存放之后的包,是目标文件的集合。在我们设计的软件程序钟,有一些代码的出现频率很高,它们可以被当作公共代码来反复使用,为了避免重复编写代码,我们就可以把这些公共代码封装编译成为库,以便需要的时候调用,在Linux中,库分为静态库和动态库。静态库:​ 静态库的文件后缀为.a,一般我们会将静态库命名为libxxx.a。在链接过程中会将具体的目标文件以及静态库中引用到的内容一起链接至可执行文件中。由于静态库中的内容是在链接阶段直接被拷贝了一份到可执行文件中,所

2022-01-12 09:30:00 126

原创 gcc常用选项

预编译-E选项:​ 主要是进行预编译的处理,将头文件拓展或是宏的替换以及注释的删除等,最终将源文件处理生成.i文件,gcc -E test.c -o test.i编译 -S选项:​ 生成.s汇编文件gcc -S test.c -o test.s汇编 -c选项:​ 生成.o目标文件,最终生成的.o文件是一种中间文件,在Linux中其格式也是ELF,仅仅只是没有进行链接,所以其内容与最终的目标文件几乎是一样的。​ 可执行文件就是我们常说的由.bss段、.text段、.data段等..

2022-01-11 09:30:00 102

原创 编译过程以及gcc的简单使用

编译的基本流程:预处理阶段:主要对源文件进行文件包含和预处理语句的分析处理生成.i文件;编译阶段:把预处理完的.i文件进行一系列词法分析、语法分析、语义分析以及优化后生成相应的汇编文件.s;汇编阶段:使用汇编器将汇编代码转换成机器可以执行的指令并生成.o文件;链接阶段:使用链接器把所有的目标文件和库文件链接起来放在合适的位置生成.out可执行文件。gcc简单体验:sudo apt install gcc #安装gcc创建test.c,内容如下:#include &lt.

2022-01-10 12:02:24 301

原创 设计模式之观察者模式(C语言)

介绍:观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。问题:​ 假如顾客对某个特定的产品非常感兴趣 , 而该产品很快将会在商店里出售。顾客可以每天来商店看看产品是否到货。但如果商品尚未到货时,顾客就会空手而归。另一方面,每次新产品到货时,商店可以向顾客发送邮件。这样,顾客就无需反复前往商店了,但这样同时也可能会惹恼对新产品没有兴趣的其他顾客。​ 所以我们似乎遇到了一个矛盾:要么让顾客浪费时间检查产品是否到货, 要么让商店浪费资源去通

2022-01-09 10:00:00 459

原创 设计模式之状态模式(C语言)

介绍:​ 状态模式是一种行为模式,它与有限状态机的概念紧密相关;其主要思想是程序在任意时刻仅可处于几种有限的状态中。在任何一个特定状态中,程序的行为都不相同,且可瞬间从一个状态切换到另一个状态。不过,根据当前状态,程序可能会切换到另外一种状态,也可能会保持当前状态不变。这些数量有限且预先定义的状态切换规则被称为转移。作用:将业务模型抽象成一个有限状态机,减少大量的switch-case和if-else的使用,使得代码逻辑清晰,结构规整;类比:​ 智能手机的按键和开关会根据设备当前状态完成

2022-01-08 10:00:00 702 1

原创 ffmpeg音频基本操作

MP3转PCM:ffmpeg -i .\test.mp3 -f s16le -ar 16000 -ac 1 -acodec pcm_s16le out.pcm-f 表示格式,既16位小端格式-ar表示采样率-ac表示通道数MP3转WAV:ffmpeg -i test.mp3 -f wav "test.wav"音频剪切:ffmpeg -i test.wav -vn -acodec copy -ss 00:00:03 -t 00:00:01 out.wav..

2022-01-07 11:26:09 1581

原创 设计模式之命令模式(C语言)

介绍:​ 命令模式是一种行为模式,它可以使代码解耦,便于维护;假设我们现在要设计一个命令解析的模块:传统方式:void func1(void){ printf("func1\r\n");}void func2(void){ printf("func2\r\n");}void func3(void){ printf("func3\r\n");}void prase_cmd(char cmd){ switch(cmd) {

2022-01-06 11:23:57 395

原创 设计模式之责任链模式(C语言)

介绍:​ 责任链模式是一种行为模式,它可以允许你将请求沿着处理者链进行发送,收到请求以后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者;作用:将请求按照链的方式一一传递类比:​ 公司申请报销,首先要leader审批通过,然后是HR,再然后是财务,最后是老板,一级一级的将请求传递;示例:#include <stdio.h>#include <assert.h>#include "list.h"static LIST_HEAD(cha

2022-01-05 12:20:29 697 1

原创 去除字符串首尾空格【shell】

去除字符串首尾空格trim_string() { : "${1#"${1%%[![:space:]]*}"}" : "${_%"${_##*[![:space:]]}"}" printf '%s\n' "$_"}示例:$ trim_string " Hello, World "Hello, World$name=" Han Meimei "$trim_string "$name"Han Meimei解析:: 内置用于代替临时..

2022-01-04 16:33:58 3233

原创 typeof关键字

typeof是C语言中的一个关键字,与sizeof类似,作用是得到参数的具体类型;示例:定义一个与a类型相同的变量b:int a;typeof(a) b;在linux中有个很经典的用法如下:#define __MIN(A,B) ({ typeof(A) __a = (A);\ typeof(B) __b = (B);\ __a < __b ? __a : __b; })使用typeof可以让这个宏具有泛化能力,无论什么传入类型的参数传入,都可以有效的判别大

2021-12-30 15:13:19 399

原创 侵入式链表

普通链表:我们经常使用的普通链表是每个节点的next指针指向下一个节点的首地址:具体代码实现如下:struct link{ int data; struct link* next;}普通链表的缺点:一条链表上的所有节点的数据类型需要完全一致对某条链表的操作如插入,删除等只能对这种类型的链表进行操作,如果链表的类型换了,就要重新再封装出一套一样的操作,泛化能力差;侵入式链表:侵入式链表的节点的链接成员指向的是下一个节点的链接成员:节点结构如下:typ

2021-12-29 15:24:08 1486

原创 设计模式总汇(C语言)

设计模式总汇,C语言版本

2021-12-28 10:10:02 910 1

原创 设计模式之建造者模式(C语言)

介绍:​ 建造者模式是一种创建型设计模式,亦称创建者模式、生成器模式等;该模式是将一个复杂的对象分解为许多简单的对象,然后逐步构建出想要的产品,产品的最终形态都是一致的,但是具体组成的每个对象可能是不相同的;优点:将复杂对象的构建与表示分离;只需要选择具体的组成对象即可创建出复杂的对象,无需知道建造细节;类比:​ 一个台式机是由CPU、显卡、内存、硬盘等部件组成,我们可以根据自己的需求选择不同型号不同厂商的部件,比如说CPU选择Intel或者AMD的;在这里一个台式机就是由需多部件组成,

2021-12-27 16:07:40 804

原创 设计模式之原型模式(C语言)

介绍:​ 原型模式是一种创建型设计模式,使你可以通过复制原型来创建一个一模一样的新的对象,无需考虑创建过程,数据类型等内容;作用:创建一个与原型一模一样的对象;解决问题:即使原型的状态有所改变,也可以创建出与其当前状态一致的对象省去了创建对象的复杂操作,不必关注创建对象的具体过程类比:​ 老师打印试卷,拿着原版试卷,可以复制出任意数量的试卷,原版试卷既为原型;代码示例:#include <stdio.h>#include <string.h>#

2021-12-24 18:57:25 650

原创 设计模式之抽象工厂模式(C语言)

介绍:​ 抽象工厂模式是一种创建型设计模式;作用:​ 提供统一的接口让用户根据不同的需求创建出不同的工厂;类比:​ 一个制造家具的工厂,可以根据用户不同的诉求,制造出不同风格的家具;代码示例:首先定义出不同类型的家具以供生产:void modern_chair(void){ printf("A modern chair\r\n");}void modern_dest(void){ printf("A modern desk\r\n");}void victor

2021-12-23 10:02:35 819

加速度计波形显示.7z

python读取串口输出的三轴加速度数据并显示波形

2022-01-04

C语言中侵入式链表的源码

侵入式链表源码

2021-12-27

空空如也

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

TA关注的人

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