自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博文发布平台更换

后续博文主要在微信公众号发送,部分会推到此博客上,欢迎关注本人公众号并提出意见,互相学习,互相进步。

2021-10-19 19:55:49 108

原创 pthread_join()函数在线程的退出及回收中的作用

线程有三种情况退出,一是进程结束后,线程随之结束,二是通过函数pthread_exit()函数主动退出,三是通过pthread_cancel()函数被其他函数被动结束。当线程结束,主线程可以通过pthread_join()函数来回收线程资源,并获得线程结束后需要返回的数据。运行结果如下:...

2021-03-17 21:31:45 693

原创 C语言进阶之单引号和双引号

C语言中的单引号用来表示字符字面量,双引号表示字符串字面量。 字符字面量被编译为对应的ASCII码; 字符串字面量被编译为对应的内存地址; printf的第一个参数被当成字符串的内存地址 内存的低地址空间(小于等于0x08048000的地址)不能在程序中随意访问,否则一定为出现段错误。 ...

2019-10-24 22:47:52 236

原创 C语言进阶之enum, sizeof, typedef

1,enum是C语言的一种自定义类型,enum值是可以根据需要自定义的整型值,主要用于定义离散值,第一个enum值默认是0,默认情况下enum值是在前一个定义值的基础上加一。 应用:enum中定义的值是C语言中真正意义上的常量,在工程中多用于定义整型常量。 2,sizeof是编译器内置的指示符(本质),用于计算类型或变量所占的内存大小,它的值在编译期就已经确定。...

2019-10-11 21:45:25 137

原创 C语言进阶之struct与union

1,struct struct可以看做变量的集合 问题一:一个空结构体占用多大内存? 答:空结构体大小为零,对应结构体变量也是零,均不占用内存空间(只针对GCC编译器环境下),但不提倡在C语言里出现 新概念:柔型数组 柔性数组即数组大小待定的数组,C语言中结构体的最后一个元素可以是大小未知的数组 问题二:sizeo...

2019-09-26 22:50:30 194

原创 C语言进阶之const与volatile

1,const const修饰的变量是只读的,它所修饰的变量不能作为左值; const修饰的局部变量在栈上分配空间 const修饰的全局变量在全局数据区分配空间 const只在编译期有用,在运行期无用 C语言中的const使得变量具有只读属性 现代C编译器中的const将具有全局生命周期,变量存储于只读存储区 ...

2019-09-24 23:07:21 163

原创 C语言进阶之goto与void

1,goto语句 高手潜规则:禁用goto 项目经验:程序质量与goto的出现次数成反比 goto语句破坏C语言特性结构,带有一些汇编特征。 2,void类型 void修饰函数返回值和参数 如果函数没有返回值,那么应该将其声明为void 如果函数没有参数,应该声明其参数为void 函数的...

2019-09-23 23:27:10 158

原创 C语言进阶之变量属性

C语言的变量可以有自己的属性,在定义变量的时候可以加上属性关键字,属性指明了变量的特有意义 auto:C语言局部变量的默认属性,表明将被修饰的变量存储于栈上,编译器默认所有局部变量都是auto register:指明将局部变量存储于寄存器中,而不是内存中,寄存器有限,所以不能将所有变量定义为寄存器变量,register只是请求寄存器变量,但不一定请求成功,regis...

2019-09-22 22:23:56 123

原创 C语言进阶之类型转换

强制类型转换: 隐式类型转换: 问题:何时使用强制类型转换,何时使用隐式类型转换?float类型可否强制转化为int? 浮点转整型:只保留整数 short转char:只保留低位 short转int:结果不变 隐式类型转换:编译器主动进行的转换; 低类型(所占字节数相对于高类型少)到高类型的隐式类型...

2019-09-22 21:08:21 140

原创 C语言进阶之有符号数与无符号

1,当有符号数与无符号数相加 2,用错unsigned int

2019-09-16 23:19:58 96

原创 C语言进阶之基本数据类型

基础知识:C语言中有固定内存大小的别名,它是创建变量的模子,成为数据类型,如int,short,double,char,float等等。 char :1byte short : 2 byte int: 4byte 数据类型的本质就是一个模子,一个别名,内存大小的别名。 变量的本质:变量是一段实际连续存储空间的别名,程序中通过变量来申请存储空间,通...

2019-09-16 21:57:57 85

原创 谷歌浏览器插件推荐:思维导图插件

谷歌浏览器上有很多有用的插件,诸如清理广告的Adblock Plus,美化你开始页面的momentum,对付英语文本的google翻译,方便网页浏览代码的sourcegraph,以及下载神器油猴等等,今天推荐一个可以快速完成思维导图的插件Mind Map Tap' 我们日常写程序时,免不了要用思维导图去预先规划我们的编写程序思路,我们可以用纸笔完成,也可以下载付费软件XM...

2019-09-09 22:03:42 5671 3

原创 嵌入式Linux项目:电子书(1)

涉及知识点:Unix环境高级编程,线程的使用,网络通信TCP/IP协议,LCD显示设备的使用,程序的模块化编程,Makefile框架,数据结构:链表,环形表。库的安装与使用。 平台:JZ2440V3 项目完成顺序: 1,弄清需求 2,搭建软件框架 要点:模块化,留下接口,减少干扰,确定命...

2019-09-01 23:08:59 696

原创 PCB板布线的一点总结

最近项目需要绘制一块双层的电路板,元件约300多个,板子大小只有95mmX80mm,由于初学,布线时出现了很多问题,例如: 1,由于板子太小,反反复复布局,依然无法将元器件全部放入; 2,布线缓慢,时间稍长整个人的思路已经混乱,导致后面顾此失彼; 3,线路混乱,经常出现一个线要绕四五个弯道才能联通的情况,最后观测整体极其混乱; ...

2019-07-18 22:47:13 354

原创 linux多线程编程的一些问题(一)pthread_join()的一点理解

笔者最近在学习Linux环境下的多线程编程,在学习了线程的创建函数后遇到了一个陌生的函数--------pthread_join(),对于这个函数,有些摸不着头脑,于是搜索了一番对这个函数的解释:看了半天,对这种“一个线程要等待另一个线程终止”很是迷惑,于是写了个程序验证:写完之后进行编译,现象如下:当命令行出现“this is main process”后经...

2019-05-12 22:47:40 1362 1

原创 浅谈Linux的Framebuffer(1):

笔者最近在尝试在Linux3.4.2版本内核下编写程序在液晶显示屏上显示信息,在使用mmap读取显存地址以及读写数据时接触了Linux的framebuffer(帧缓冲),现对framebuffer的编程做一点总结与解析。 1,framebuffer简介 framebuffer本意是帧缓冲,它是指显示设备里的显存。显存里保存是像素的RGB数据。一个显存的大小...

2019-05-10 22:05:59 494

原创 关于链表和“->”符号的一点思考

常规单链表的实现方式是定义一个结构体,结构体中定义一个存放数据的变量和一个指向下一个节点的指针,在初次接触链表时,接触到了一个符号“->”,笔者在学习时,最开始常常把它和“.”傻傻分不清楚,对于这种状况,首先要搞清楚一点,结构体也是数据类型的一种,跟“int”"char"一样,定义一个结构体后结构体中的变量也就可以被这个结构体定义的变量访问,(结构体命名辨析)https://blog.csd...

2018-05-15 16:05:45 1463

原创 Github常用概念

Repository:仓库,如果你想在Github上开源一个项目,就必须新建一个Repository。一个项目对应一个Repositories。Issue:提问,别人看到了你的项目如果发现有不足就进行提问,你可以针对这些问题逐个修复。Star:即给项目点赞。Fork:分支,如果你看到别人有好的项目你想在这个项目基础上进行修改,就可以在别人项目处点击“Fork”,这样在你的项目栏就会出现这个项目,然...

2018-05-15 08:45:43 176

原创 论“scanf与scanf_s”

最近用vs2012写一个学生成绩管理系统时遇到了一点问题,在增删查改学生信息时,不可避免会用到scanf输入函数以及fopen文件操作函数,但程序完成后编译过程中,出现了一个报错如下:1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------1>  stdafx.cpp1>d:\code\20130925\20130925\stdaf...

2018-05-14 10:26:47 780

原创 韦东山JZ2440学习日志(3)

在看视频之前看了《嵌入式Linux开发完全手册》,对mmu的大致原理与作用做了一点了解,具体涉及到虚拟内存与物理内存部分转化的在P101到P112之前,寄存器很多,绕来绕去很晕,一定要耐着性子看完1,权限管理   2,地址映射首先是地址映射:cpu看到的用到的都是虚拟地址,实际设备用的是物理地址,CPU->(mmu->存储管理器),cpu核只关心发出地址,读写数据,不关心地址是虚拟地址...

2018-04-28 19:24:57 276

原创 韦东山JZ2440学习日志(2)

存储管理器单元课堂笔记(未完待续,本章问题:对存储管理器理解有偏差,暂时未能理清整个思路)2440包括CPU,存储管理器,外部有SDRAM,网卡等等,例如,CPU想读0X300000,读四字节,mov r1,#0x30000000ldr r0,[r1]根据配置信息决定怎么访问外部设备,想访问一个芯片,需要哪些事情?首先,必须要有地址线,数据线(8/16/32,即数据宽度),第三,时钟频率,另外还有...

2018-04-27 22:59:13 337

原创 裸机开发笔记,程序开发win平台与linux平台的一点差别

(听课的同时将听到的内容打出来是一种有效避免分心的方法,同时为了跟上讲课的速度,会强制自己加快敲键盘的速度,有效避免以前用两个指头在键盘上戳来戳去,这对以后程序开发至关重要,当你能回想起自己敲下来的笔记的大部分内容时,这节课就不会左耳进右耳出了)嵌入式开发:编辑代码  (在Windows下编辑,上传)编译:1;指定链接地址(链接脚本)          2,指定链接顺序(命令行链接)       ...

2018-04-26 15:59:17 430

原创 韦东山JZ2440学习日志(1)

学习路线概括:一期:开发板入门与安装,裸机程序开发(包括接触开发板,硬件结构,看懂原理图)    ———两个月          衔接课程(uboot内核,根文件系统,字符设备驱动)                                          ———一个月二期:驱动                      驱动编写加移植                           ...

2018-04-26 10:04:56 936

原创 leetcode刷题日记(3)

反转整数给定一个32位有符号整数,将整数中的数字进行反转;示例:输入:123          输出:321int reverse(int x){int result=0;while(x!=0){int temp=result*10+x%10;if(temp/10!=result){return 0;} //考虑溢出的情况,temp由商和余数构成,当溢出之后,值的商一定不会再等于...

2018-04-25 19:38:42 287

原创 leetcode刷题日记(2)

题号:83  删除排序链表中的重复元素给定一个排序链表,删除所有重复元素,使得每个元素只出现一次示例:输入:1->1->2输出:1->2解题思路:定义一个中间层,将节点中的数据与中间层比较,如果值相同,将值赋给中间层,节点使用当前中间层的指针,反之直接访问下一个struct ListNode{int val;struct ListNode *next;}struct Li...

2018-04-24 12:08:31 208

原创 数据结构:链表的实现(1)单链表的编写

step 1:单节点的创建:struct node{int data;struct node *pNext;//一个结构体里包含一个指针,这个指针指向的是这个结构体的数据类型,指针指向的是数据类型是这种结构,但不一定是自己所在的这个结构};step2 :使用堆内存创建节点struct node *create_node(int data){struct node *p=(struct no...

2018-04-21 23:19:50 261

原创 leetcode刷题日记(1)

题号:26.删除排序数组中的重复项示例:给定数组nums=[1,1,2];函数应该返回新的长度2,原数组的前两个元素被改为1,2.解题思路:定义一个局部变量与数组中的所有元素进行逐次比较,如果不相同就加一,将其传入数组保存int remove(int *nums,int numsSize){ int num=0; if(numsSize==0){ return 0; ...

2018-04-19 16:27:39 144

转载 Centos与Ubuntu的区别

CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。     Ubuntu是一个以桌面应用为主的Linux...

2018-04-18 16:29:12 436

原创 未来一年主要学习内容梗概

1;leetcode题型练习,包含解题思路,知识漏洞,题型涉及数据结构2;数据库mysql学习3;c++语言与shell脚本学习4;嵌入式Linux编程与学习入门,学会基本I2C,SPI,CAN总线等开发,完成简单应用项目5;git的学习入门,更新github6;c/c++的游戏编程...

2018-04-18 10:22:54 233

空空如也

空空如也

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

TA关注的人

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