自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fzzjoy的专栏

Stay Foolish

  • 博客(23)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 【面试题】共用体(联合体)简介及在大小端判断的巧妙运用

共用体union:几个不同类型的变量共享同一段内存的结构,称为共用体(定义是核心)。共用体的定义、声明均与结构体一样,定义共用体类型一般形式为:union 共用体名{成员列表;}变量列表;例如:union Data{ //表示不同类型的变量i、ch、f可以存放到同一段存储单元中。short i; char ch;float f;}a,b,c; /...

2015-10-31 13:17:05 5208

原创 sizeof终极解密

sizeof,在很多招聘笔试或者面试都会提到,它里面到底隐藏着多少陷阱呢?就让我们一探究竟。铭记一个宗旨:sizeof计算的是一种数据类型(可以是结构体、int 、char、类等)所占的内存大小,只与类型有关,我们时刻关注的点应该是变量本身的类型,而不是它的值或指向的内存。注:sizeof是运算符,不是函数。一般可以这样理解:数组——编译时分配的数组空间大小;指针——存储该指针所...

2015-10-29 19:14:19 471

原创 Linux指令_文件处理工具sed

sed (Stream editor)本身是一个管道命令,用于过滤、新增、选取和替换文本。一般使用格式如下:sed  [-nefri]  [动作]参数:-n:使用安静(silent)模式。在一般的sed用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来;-e:直接在命令行模式上进行sed

2015-10-28 21:38:48 418

原创 进程间通信方法总结

无名管道(或称为管道)具有两个对外端口,一个称为读端,一个称为写端。一个进程在管道的写端写数据,另一个进程从管道的读端读取数据。管道仅局限于父进程与子进程之间的通信。管道通信的特点:1.管道通讯是单向的,有固定的读端和写端。2. 数据被进程从管道读出后,在管道中该数据就不存在了。3. 当进程去读取空管道的时候,进程阻塞。4. 当进程往满管道写数据时,进程阻塞。5

2015-10-28 15:57:50 437

原创 计算机网络常见概念

1、PDU与SDUPDU:对等层之间传送的数据单位称为该层的协议数据单元PDU;SDU:层与层之间交换的数据单位称为服务数据单元SDU;两者的关系:可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU;2、帧与MTU帧:点对点信道的数据链路层的协议数据单元称为帧;MTU:每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU。两者的

2015-10-28 10:49:12 1244

原创 http协议简介

万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所,英文简称Web。是一个分布式的超媒体系统,是超文本系统的扩充。注:超文本:是包含指向其他文档的链接的文本。超媒体:则除了超文本还包含其他表示方式的信息,如图形、图像、声音、动画、视频等。在一个客户程序主窗口上显示出的万维网文档称为页面。OSI七层模型QA:Q:怎样标志分布在整个因特网上的万维网文档?A:URLQ:用什么...

2015-10-26 21:46:40 798

原创 Linux指令_字段处理工具awk

参开书籍:《鸟哥的私房菜:基础学习篇(第三版)》P363awk 也是一个非常棒的数据处理工具!相较于 sed 常常作用于一整行的处理, awk 则比较倾向于一行当中分成数个『字段』来处理。因此,awk 相当的适合处理小型的数据处理呢!awk 通常运作的模式是这样的:awk '条件类型1 {动作1}  条件类型2{动作类型2}  ...'  filename示例如下:取出最近

2015-10-26 14:48:24 365

原创 C_运算符优先级

参考文章:http://www.jb51.net/article/37282.htmC语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右

2015-10-26 10:55:55 327

原创 DNS解析过程简介

参考书籍:《计算机网络第5版》P224域名系统DNS(Domain Name System):是因特网使用的命名系统,替代人们去记忆繁琐的IP地址。因特网的域名结构:采用层次树状结构, 分为顶级域名、二级域名、三级域名等等。域名解析过程:客户端进程申请解析域名,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地

2015-10-24 21:41:17 458

原创 Shell Script_简要总结

Shell Script类似windows下的.bat(批处理文件),简单的可以理解为一大串指令的集合,从而实现自动化的系统管理。示例(脚本基本架构):#!/bin/bashPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesexport PATH

2015-10-24 16:42:37 356

原创 C++_inline函数(内嵌函数)

普通函数调用过程如下:在上下文切换中过程中需要一定的时间和空间开销(保护现场和恢复现场),C++提供了一种更高效的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。这种嵌入到主调函数中的函数称为内嵌函数,用inline 声明。如:inline int  max(int a, int b);如果在类体中定义的成员函数(注:需在类体中定义函数体)中不包括循

2015-10-23 22:08:48 878

原创 复合赋值运算总结

规律:复合赋值运算的一般形式变量 双目运算符=表达式;等价于:变量=变量 双目运算符 (表达式) (注:即等号右侧表达式为一整体先运算,再与左侧变量相运算)例:#includeint main(){ int a=5,b=4,c=3; a+=b;//等价于 a=a+b printf("a=%d\n",a); a=5; a*=b

2015-10-23 21:30:19 6405

原创 TCP的拥塞控制

拥塞定义在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞。∑对资源的需求>可用资源拥塞控制方法常见的有:慢开始、拥塞避免、快重传、快恢复。发送方维持一个拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度,并且动态的变化。发送方让自己

2015-10-22 11:50:03 909

原创 C++_Static成员使用事项

静态数据成员如果希望个对象中的数据成员的值是一样的,就可以把它定义为静态数据成员。1、静态数据成员在内存中只有一份拷贝(而不是每个对象都分别为它保留一份空间),其值对所有对象都是一样的(即所有对象共享静态数据成员)。如果改变它的值,则在各对象中这个数据成员的值都同时改变。2、只要在类中指定了静态数据成员,即使不定义对象,也为静态数据成员分配了空间,它可以被引用。3、静态数据成员可以

2015-10-22 09:42:23 429

原创 C++_面向对象程序设计基本概念

1、继承与派生:都是针对同一种技术现象的不同角度说法(子类继承父类,父类派生出子类)。继承:一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。派生:从已有的类产生一个新的子类(或称为基类和派生类)。多重继承:一个派生类有两个或多个基类。

2015-10-20 21:40:58 542

转载 内存管理算法

在内存管理中存在这两类算法:一类是内存分配算法,一类是页面置换算法 内存分配算法:是指怎么从连续的逻辑地址空间上分配内存地址给进程。常见内存分配算法及优缺点如下:  (1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。

2015-10-18 10:20:15 1071

转载 C_malloc、calloc、realloc的区别

参考文章:http://blog.csdn.net/shuaishuai80/article/details/6140979(1)C语言跟内存分配方式从静态存储区域分配.       内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.在栈上创建       在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结

2015-10-17 21:27:18 368

转载 GDB工具使用教程_函数调用栈(call stack)探密

我们知道,通常一个程序的运行,不外乎是A函数调用B,B函数调用C等等,等所有的调用都完成后,整个程序的运行也就ok了。在这个过程中,每当有新的函数调用,系统都会把该函数的一些信息,包括函数的参数,以及一些寄存器的值等,保存到调用栈(call stack)上。等该函数运行完成后,这些信息再从调用栈上弹出(pop)。如下图所示,是一个完整的调用栈:在上图中,整体叫做调用栈(call stack

2015-10-17 19:51:06 2149

原创 常量指针、指针常量、野指针、空指针概念解析

指针常量与常量指针的区别:int a;int * const p = &a //指针常量 *p可以修改*p = 8;(OK) p不可以修改 p++(ERROR)int a,b;const int *p = &a; //常量指针 *p不可修改 *p = 8;(ERROR)

2015-10-15 10:58:43 796

原创 优先级反转、优先级继承

优先级反转:准确来说,指的是一种现象,并非一项任务调度技术,即高优先级任务被低优先级任务阻塞推迟的行为被称为“优先级反转”。这是一种不合理的行为方式,如果把这种行为再进一步放大,当高优先级任务正等待信号量(此信号量被一个低优先级任务拥有着)的时候,一个介于两个任务优先之间的中等优先级任务开始执行——这就会导致一个高优先级任务在等待一个低优先级任务,而低优先级任务却无法执行类似死锁的情形发生。正

2015-10-13 20:23:55 4720

原创 数据结构学习——链表的基本概念和分类

链表由一系列不必在内存中相连的结构组成。每一个结构均含有表元素和指向包含该元素后继元的结构的指针。我们称之为next指针。最后一个单元的next指针指向null(空)。如下图所示为一个单链表:其中,我们认为A1是A2的前驱元,A2是A1的后继元。对于链表删除操作可以通过修改一个指针来实现,free回收所删除节点内存。对于链表的插入操作需要使用malloc调用从系统得到的一个...

2015-10-13 19:43:51 1284

原创 死锁4个充分不必要条件

去ZTE面试,被问到了以上的知识点,之前有涉猎过相关书籍了解过,由于在项目中体现的不多,导致概念理解不清析,回答起来也是模棱两可,太丢人了真是。现特此总结一下。当两个任务都在等待被对方持有的资源时,两个任务都无法再继续执行,这种情况就被称为死锁。死锁发生必须具备4个条件:1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其

2015-10-13 19:32:57 600

原创 GDB工具使用教程_基本调试指令

本文基于国嵌的教程文档,总结一下GDB在Linux下的使用。GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:1、启动被调试程序。2、让被调试的程序在指定的位置停住。3、当程序被停住时,可以检查程序状态(如变量值)。尽管大多数开发人员熟悉了在windows下使用IDE进行程序调试,殊不知绝大多数的IDE使用的调试工具仍是GDB,不过整合到

2015-10-10 20:13:35 876

qt-solutions.rar

qt扩展库源码:属性树等

2021-09-01

如何制作DLL接口及使用

具体教程详见:http://blog.csdn.net/u010275850/article/details/53742683

2016-12-19

基于STM32高精度频率计的设计

这是我自己采用STM32的定时器外部计数模式,考虑到了计数溢出中断。开设1s的时钟窗口。数据均通过MATLAB二次拟合处理过,以纠正误差。理论上可以测到1hz-无穷的频率范围(但在本实验中只是测到了1Mhz.对1Mhz以上数据并没进行数据拟合,故认为不在指标内),分辨率为1Hz(因为是开了1s的时间窗口,时间窗口越大,分辨率越高)高精度频率计。避免了输入捕获受输入时钟的大小限制。自己设计的方案。当然数据拟合部分还能分段拟合,精度就更高了。

2014-08-10

18B20串口显示

测试通过,能用。又不懂的可以给我留言,提供技术支持。

2014-05-29

NRF24L01双向通信

基于单片机的NRF24L01通信程序。测试通过,保证能用。

2014-05-29

uCGUI最新固件库

最新的固件库哦,亲测能用哦。是基于KEIL mdk开发使用,一般8、16、32位单片机开发都OK。

2014-04-20

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

TA关注的人

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