自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xhping

过好当下,热爱生活

  • 博客(20)
  • 收藏
  • 关注

原创 【demo】V4L2框架采集摄像头图像

V4L2接口定义:(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。整个采集图片的流程如下:打开设备检查和设置设备属性设置帧格式设置一种输入输出方法(缓冲区管理)...

2021-09-17 16:44:23 3127 1

原创 复杂链表的拷贝【C++】

解题步骤:首先复制各个节点,先拼接链表,在每个节点的后面插入与当前节点相同数据域的节点然后将第一步插入的节点中random指针域分别指向当前节点的上一个节点的random指针指向的节点所指向的next节点;然后将构建完的链表拆分成两个独立的链表/*// Definition for a Node.class Node {public: int val; Node* next; Node* random; Node(int _val) { .

2021-08-28 15:33:50 222

原创 【面试】多线程、多进程的常考点

多线程、多进程1、 进程的概念及优点2、进程的基本状态及状态之间的关系3、进程和线程的关系及区别1、 进程的概念及优点进程(Process)是操作系统分配资源的基本单位,进程是线程的容器,程序是指令、数据及其组织形式的描述,进程是程序的实体,程序一旦跑起来就是进程,不跑起来就只是程序,程序是没有生命周期的,线程和进程是有生命周期的,每个进程的内存是相互独立的。进程的优点:1、利于资源的管理和保护2、可靠且安全,但效率不高线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中

2021-08-19 21:33:46 630

原创 【面试】栈、队列增删改查---C语言

栈、队列增删改查一、栈的增删改查1、栈初始化2、栈销毁3、压栈4、弹栈5、返回栈顶的元素6、返回栈内数据个数7、判断栈是否为空二、队列的增删改查一、栈的增删改查#define StackSize 100 //栈大小#define DataType int //栈数据类型typedef struct Stack{ DataType array[StackSize]; int top;}Stack;1、栈初始化/** @funcation: * StackInit:栈

2021-08-18 21:57:25 804

原创 写代码常说的堆、栈

写代码常说的堆、栈(一)堆malloc和new的区别:1、申请内存所在位置不同2、返回类型安全性3、内存分配失败时的返回值4、是否需要指定内存大小5、是否调用构造函数/析构函数6、对数组的处理7、new与malloc可不可以相互调用8、是否可以被重载9、能够直观的重新分配内存10、客户处理内存分配不足关于C语言的内存分区(二)栈(一)堆在写程序时用到的malloc、realloc、calloc、new操作都是在申请堆内存,每次使用完后记得释放掉(malloc-free)(new-delete),如果不释

2021-08-15 21:16:18 509

原创 【面试】手写Power()函数【C++】

题目:给定一个函数原型,要求实现该函数并且不能使用库函数也不考虑大数问题函数原型: double Power(double base,int exponent);代码:#include <iostream>#include <algorithm>//algorithm意为"算法",是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数。using namespace std;const double eps = 1e-9;//浮点

2021-08-15 16:00:42 1311

原创 【面试】常考链表题-C语言

单链表基本操作基本操作链表初始化插入某个节点删除某个节点查找某个节点修改节点的数据域遍历所有节点链表反转判断链表是否有环删除有序链表重复节点基本操作先定义一个结构体类型#define DataType inttypedef struct LinkList{ DataType Data; //数据域 LinkList * Next; //指针域}LinkList;链表初始化/** @funcation: * Create_LinkList:创建一个链表 * @para

2021-08-15 14:57:36 439

原创 根据结构体成员变量的地址得出结构体的首地址(offsetof、container_of)

关于offsetof()、container_of()函数详解一、前言二、offsetof ( )函数详解三、container_of( )函数详解五、一个实例四、总结一、前言最近在看linux驱动时偶然间发现了这两个宏函数offsetof、container_of,刚开始看的时候一头雾水,后来网上找了些资料理解了下大概清楚了它的整个过程,下面我来解析一下#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#def

2021-08-06 15:29:12 920

原创 手写strlen()、strcpy()、strcmp()、strcat()、strstr()、memcpy()

int strlen(const char *str);此函数是传入一个字符串,计算该字符串的长度,’\0’不算入其中。 (sizeof()才会把’\0’算入其中,但是sizeof()的功能是计算传入字符串所占的字节是多少)int strlen(const char *str){ assert(str != NULL); //检查传入的字符串有没有申请空间 int len = 0; //定义字符串长度的计数变量 while((*str++) != '\0')

2021-08-02 15:34:03 751

原创 C++ 实现 httpserver (mongoose)

httpserver:包含内容:C++ 、mongoose、http协议此次只实现了服务端,客户端没有去实现。最终测试成功主要针对客户端使用POST方式进行应答,GET方式也可以客户端使用POST方式上传的信息会通过标准输出函数输出在终端上代码:main.cpp// *************************************************// File name: main.cpp// Author: xhp // Version: 1.0// Date:

2021-07-23 18:14:30 2181

原创 进程基本知识

进程的基本知识1、进程标识符类型:pid_t 有符号的16位整形数命令: ps [option]ps axf (常用用于查看系统所有进程的所处状态)进程号是顺序向下使用的(不回头使用被释放的进程号),这一点和文件描述符不同,文件描述符(fd,file descriptor)是有小则取小,优先使用最小的。getpid(); //返回当前进程的ID;getppid(); //返回当前进程的父进程ID;2、进程的产生fork(); 创建一个新进程,复制当

2021-04-09 23:40:25 221

原创 想学单片机,该如何避免踩坑?

目录开发板如何选购学51单片机的好处自我规划与安排后续该去学什么我自己刚进入大一的时候,对电子就特别感兴趣,于是自己琢磨着要学些东西,但是…我该学啥呢?迷茫对于当代大学生是一个很普遍的现象,但是我们不能安于现状,必须去了解自己喜欢什么?对什么感兴趣?所以我们要做的就是----挖掘自己相信大家点进这篇文章都是已经对单片机产生了一定的兴趣的,那么我们开始进入正题吧!开发板如何选购对于开发板,在这里我先说51单片机的开发板,我觉得大家有必要买一块设计比较完善,运行比较稳定的开发板,因为对于初学者来说,如果

2021-03-31 21:12:38 258

原创 Makefile学习笔记(七)

Makefile学习笔记隐含规则一、使用隐含规则二、关于命令参数的变量定义模式规则一、自动化变量隐含规则水能载舟,亦能覆舟,隐含规则既能带来方便,也可能带来麻烦一、使用隐含规则例:abc: abc.o bcd.0[Tab]gcc -o abc abc.o bcd.o $(CFLAGS) $(LDFLAGS)我们可以注意到,这个makefile中并没有写下如何生成abc.o和bcd.o这两个目标的规则和命令。因为make的硬干规则功能会自动为我们自动去推导这两个目标的依赖目标

2021-01-24 18:50:58 111

原创 Makefile学习笔记(六)

Makefile学习笔记一、foreach函数二、if函数三、call函数四、origin函数五、shell函数六、控制make的函数七、make的运行1、make的退出码2、指定makefile3、指定目标4、检查规则5、make的参数一、foreach函数foreach函数是用来做循环的,语法规则是:$(foreach <var>,<list>,<text>)函数的功能就是把参数list中的单词逐个取出放在参数var所指定的变量中,然后执行text所包含的表

2021-01-24 17:52:53 521

原创 Makefile学习笔记(五)

Makefile学习笔记使用条件判断一、示例二、语法使用函数一、函数的调用语法二、字符串处理函数三、文件名操作函数使用条件判断使用条件判断可以让make根据不同的情况执行不同的分支。一、示例举例:判断$(CC)是否是gcc,如果是的话则使用GNU函数编译目标libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc)[Tab]$(CC) -o foo $(objects) $(libs_for_gcc)else[Ta

2021-01-23 23:59:51 193

原创 Makefile学习笔记(四)

Makefile学习笔记使用变量一、变量基础二、变量中的变量三、变量的高级用法四、追加变量值五、override指示符六、多行变量七、目标变量八、模式变量使用变量变量的名字可以包含字符、数字、下划线(可以是数字开头,在C中只允许字母和下划线开头),但不应该含有“:”、“#”、“=”或者空字符,比如回车,空格。变量区分大小写。一、变量基础变量在初始化时需要给予初值,而在使用时需要在变量名前加上“$$”符号但最好用小括号“()”或者大括号“{} ”把变量名给包括起来。如果想使用""这个字符的话,那么

2021-01-23 23:12:32 197

原创 Makefile学习笔记(三)

Makefile学习笔记书写命令一、显示命令二、命令执行三、命令出错四、嵌套执行make五、定义命令包书写命令每条命令必须以[Tab]键开头,除非命令紧跟在依赖规则后面的分号后。在命令行之间的空格和空行会被忽略,但是如果该空格或者空行是[Tab]键开头的话,那么make还是会认为这是一个命令。一、显示命令通常,make会把在执行每行命令之前先把它输出在屏幕上后再执行。不过我们也可以让它不输出在屏幕上。当我们用@字符放在命令行前时,那么命令将不会被显示出来。二、命令执行make是一条接一条的执行

2021-01-23 18:11:47 183

原创 Makefile学习笔记(二)

Makefile学习笔记Makefile里有什么makefile的文件名引用其它makefilemake的工作方式书写规则规则的语法在规则中使用通配符文件搜寻Makefile里有什么1、显式规则:要生成的文件,依耐文件和命令2、隐晦规则:make有自动推导功能,所以我们有些地方可以不用写那么全, make会自动推导出来3、变量的定义:makefile中变量经常被用到,这样会很方便修改,对后期的调试会带来很多好处。变量一般都是字符串,这里的作用其实和C语言的宏很想。4、文件指示: 一个

2021-01-23 16:55:55 174

原创 Makefile学习笔记(一)

Makefile学习笔记关于程序的编译和链接Makefile的规则Makefile中的变量make自动推导功能清空目标文件的规则关于程序的编译和链接一般针对于C、C++而言,第一步是把源文件编译成中间代码文件,Windows下面的中间代码文件的后缀是.obj文件(Object File),Unix中间代码文件的后缀是.o。这个步骤称为编译(compile)。下一步就是链接了,链接就是把所有的中间代码文件合起来生成可执行文件头文件中放声明,.c和.cpp(源文件)中放定义一般来说每个源文件都应对应一个

2021-01-23 02:15:16 978

原创 C语言写2048

C语言写20481、ubuntu上的效果2、重要的定义3、左移代码4、设置输入Input无缓冲(ubuntu_base)5、全部代码1、ubuntu上的效果注意:ubuntu上面的函数和win上面的函数可能有些不能兼容如果要在win上面运行该代码需要进行相应改动2048应该有很多同学都玩过,不过是否尝试过自己亲手写一个出来呢2、重要的定义这里的定义很关键这些数组、变量都是程序中很重要的部分,会为后序编写代码带来很多方便之处//此数组是2048的界面char Interface[] =

2021-01-11 15:59:29 689

空空如也

空空如也

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

TA关注的人

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