自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 练习

题外话前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看HTML5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括PHP的、C#的、甚至Node.j

2017-05-20 22:06:48 224

转载 练习

其区别在于:(1)文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据。(2)文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离。(3)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据。(4)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。 其联系在于:(1)均为数据组织的管理技术。(2)均由数据

2017-05-18 19:50:34 319

原创 练习

希尔排序算法定义:          希尔排序是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。算法思想:          希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分为一组,算法终止。   时间复杂度:         O(N)空间复杂度:         O(1)...

2017-05-16 16:16:08 189

原创 练习

前言2016年又是一个全新的开始,每到一年的这个时候,总是颇有感慨。想对过去的一年做一些总结,但又觉得经历和精力总是不够。俗话说,一年之计在于春,当然,新的一年,也总是计划着N多事情,想做什么事情?做到什么程度?哪些一定要做好?哪些一定要完成?每一年都会列出来,到最后却发现,在这走过的一年里,有时候完全没有按照原定的路线执行。所以,针对于此,我便不再对自己进行规划,当然并不代表没有

2017-05-14 20:40:57 279

原创 练习

学完链表后就学了栈,一直想用代码实现下,可是要打工啊·······都连续加了两晚夜班了,累死了······今天休息,用了些时间写了写,还是和以前一样希望和新手一起学习,也希望得到大神指导。看代码吧,注释不合适的地方,请见谅······#include #include #include // 定义一个节点的结构typedef struct node{

2017-05-13 19:03:33 175

转载 练习

POJ上做做ACM的题语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?______________________

2017-05-12 18:16:54 236

转载 练习

POJ上做做ACM的题语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?______________________

2017-05-11 21:46:00 198

转载 练习

一、数据概述以C语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的。比如说int,bool,float等等。这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型是架通人类思维 与 计算机的桥梁。我们知道。依照冯诺依曼体系,计算机中并没有这些int  float等等,而全部都是0和1表示的二进制数据,并且计算器只能理解这些0和1的数据。所

2017-05-10 21:18:03 284

原创 练习

#include   using namespace std;  struct BiTNode{   char data;   struct BiTNode *lchild, *rchild;//左右孩子  };  BiTNode*T;  void CreateBiTree(BiTNode* &T);  void Inorder(BiTNode* &T);  void PreOrderTraver

2017-05-09 20:16:59 144

转载 练习

讨论一什么是野指针?  一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧室的小孩,这样在卧室的孩子才肯写作业。但这个在厨房的小孩比较淘气,他在走出厨房时自己将蛋糕吃了,没能带出来。而在卧室的没有吃到蛋糕,所以不肯完成他的作业。结果母亲却不知道卧室的孩子没有吃到蛋糕,还以为作业完了。结果第二天她

2017-05-08 19:49:04 178

转载 练习

讨论一什么是野指针?  一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧室的小孩,这样在卧室的孩子才肯写作业。但这个在厨房的小孩比较淘气,他在走出厨房时自己将蛋糕吃了,没能带出来。而在卧室的没有吃到蛋糕,所以不肯完成他的作业。结果母亲却不知道卧室的孩子没有吃到蛋糕,还以为作业完了。结果第二天她

2017-05-07 21:09:06 140

原创 练习

//编写一个通用函数,该函数实现对数值类型数组的倒序#include #define N 6int fun(int *p,int n){    int temp;    int *i=p;    int *j=p+n-1;    while(j>i)    {        temp=*i;        *i=*j;        *j=tem

2017-05-06 21:24:12 157

原创 练习

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下:首先Client端发送连接请求报文,Server

2017-05-04 23:01:08 145

原创 练习

[cpp] view plain copy 当用OSTaskCreate()或OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用用户的移植实例的用户扩展µC/OS-Ⅱ的功能。当µC/OS-Ⅱ设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断

2017-05-03 21:32:03 253

原创 练习

//已知数组内容如下 s[] = {1,2,3,4,5,6,7,8,9},输入一个常数 m(1//数组后移3个位置后的内容为{7,8,9,1,2,3,4,5,6}#include int main()  {      int a[] = {1,2,3,4,5,6,7,8,9};      int b[9] = {0};      int *p = a;     

2017-05-02 21:34:46 229

原创 练习

链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链表相关的面试题做了较为全面的整理,希望能对找工作的同学有所帮助。链表结点声明如下:struct ListNode{    int m_nKey

2017-05-01 20:41:28 209

原创 练习

单向链表实现堆栈要求:1 使用C语言;2 使用单向链表;3 接口规范,通用性强;解:1 链表元素的类型确定为了最终确定这两个函数的调用模型,你还需要知道进出堆栈的数据是属于哪种类型的。也就是说,你得声明一个struct结构作为链表元素的数据类型。如果没有特殊要求,应该考虑使用无类型指针来实现一个通用的解决方案。基于无类型指针的stru

2017-04-30 20:00:54 181

原创 练习

[cpp] view plain copy  #include  #include    typedef struct node  {      int data;      node* pNext;  }Node;    //链表的操作,以有头节点为例,无头节点类似  Node* head = NULL;  

2017-04-29 22:02:52 175

原创 练习

这一章介绍如何将µC/OS-Ⅱ移植到不同的处理器上。所谓移植,就是使一个实时内核能在某个微处理器或微控制器上运行。为了方便移植,大部分的µC/OS-Ⅱ代码是用C语言写的;但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为µC/OS-Ⅱ在读写处理器寄存器时只能通过汇编语言来实现。由于µC/OS-Ⅱ在设计时就已经充分考虑了可移植性,所以µC/OS-Ⅱ的移植相对来说是比较容易的。如果已经有人在您使

2017-04-28 20:23:05 197

原创 练习

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进

2017-04-27 17:23:23 202

原创 练习

[cpp] view plain copy#include   #include      int main()  {          fork();/*****/             fork() && fork() || fork();/*****/             fork();/*****/     

2017-04-25 19:39:50 145

原创 练习

、MySQL常用命令create database name; 创建数据库use databasename; 选择数据库drop database name 直接删除数据库,不提醒show tables; 显示表describe tablename; 表的详细描述select 中加上distinct去除重复字段mysqladmin drop

2017-04-24 17:19:17 140

原创 练习

fflush()不是标准库文件,经笔者测试,VC6.0完美支持,GCC(GCC4.6.2)不支持。fflush()用于清空文件缓冲区,如果文件是以写的方式打开 的,则把缓冲区内容写入文件。其原型为:    int fflush(FILE* stream);【参数】stream为文件指针。【返回值】成功返回0,失败返回EOF,错误代码存于errno 中。指定的流没有缓冲区

2017-04-23 18:29:14 148

原创 练习

在写网络服务器程序时可能需要实现多线程接收多个客户端的数据,我实现方式比较傻,死循环等待client的connect,connect之后创建thread,这样其实有一个问题,服务器程序需要长期运行,长时间线程的创建,线程资源的回收就是一个问题。Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是

2017-04-22 19:09:50 137

原创 练习

switch语句中在case块里声明变量会遇到提示“Expected expression before..."的问题例如在如下代码中1case 0:2  int index = 1;3  int j = 2;4  self.sum =

2017-04-21 19:58:42 126

原创 练习

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定

2017-04-20 21:30:14 180

原创 练习

1 #include 2 ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);3 ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);recv 和send的前3个参数等同于read和write。flags参数值为0或

2017-04-18 20:43:57 113

原创 练习

OSQQuery()函数使用户可以查询一个消息队列的当前状态。程序清单 L6.27是该函数的源代码。OSQQuery()需要两个参数:一个是指向消息队列的指针pevent。它是在建立一个消息队列时,由OSQCreate()函数返回的;另一个是指向OS_Q_DATA(见uCOS_II.H)数据结构的指针pdata。该结构包含了有关消息队列的信息。在调用OSQQuery()函数之前,必须先定义该数据结

2017-04-17 19:27:51 172

原创 练习

perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno(这里的说法不准确,errno是一个宏,该宏返回左值) 的值来决定要输出的字符串。在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。pe

2017-04-16 18:20:29 121

原创 练习

1. send函数int send( SOCKET s, const char FAR *buf, int len, int flags );  不论是客户端还是服务器端应用程序都用send函数来向TCP连接的另一端发送数据。客户端程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的:第一个参数指定发送端套接字描

2017-04-15 21:04:55 136

原创 练习

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'    关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.

2017-04-14 19:46:02 130

原创 练习

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'    关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.

2017-04-13 21:59:57 126

原创 练习

前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么容易定位了。本文归纳了下使用memset几个需要注意的地方,虽然内容很简单,但也希望对大家有所帮助。1. memset是以字节为单位,初始化内存块。当初始化一个字节

2017-04-12 22:15:24 144

原创 练习

[javascript] view plain copy public class HelloJava{      public static void main(String[] args){          System.out.println("--------------");          System.out.println(":  我

2017-04-08 22:48:42 132

原创 练习

应用程序也可以以无等待的方式从邮箱中得到消息。这可以通过程序清单 L6.17中的OSMboxAccept()函数来实现。OSMboxAccept()函数开始也是检查事件控制块是否是由OSMboxCreate()函数建立的 [L6.17(1)]。接着,它得到邮箱中的当前内容[L6.17(2)],并判断是否有消息是可用的[L6.17(3)]。如果邮箱中有消息,就把邮箱清空[L6.17(4)],而邮箱中

2017-04-06 19:51:14 146

原创 练习

[cpp] view plain copy 程序清单 L6.16是OSMboxPost()函数的源代码。检查了事件控制块是否是一个邮箱后[L6.16(1)],OSMboxPost()函数还要检查是否有任务在等待该邮箱中的消息[L6.16(2)]。如果事件控制块中的OSEventGrp域包含非零值,就暗示着有任务在等待该消息。这时,调用OSEventTaskRdy()

2017-04-05 22:01:09 144

原创 练习

一、单片机中断系统1、基本特点有5个固定的中断源,其中3个在片内,2个在片外,它们在程序存储器ROM中都分别有各自固定的中断入口地址,由此进入中断服务程序(ISR);这5个固定的中断源都分别有两级中断优先级:高优先级和低优先级;可形成中断嵌套;有2个特殊功能寄存器用于中断控制的编程(IE和IP);对于8052单片机来说,增加了第三个中断源:定时器/计数器T2的中断;外部中断源:

2017-04-03 22:09:00 142

原创 练习

程序清单 L6.14是OSMboxCreate()函数的源代码,基本上和函数OSSemCreate()相似。不同之处在于事件控制块的类型被设置成OS_EVENT_TYPE_MBOX[L6.14(1)],以及使用.OSEventPtr域来容纳消息指针,而不是使用.OSEventCnt域[L6.14(2)]。OSMboxCreate()函数的返回值是一个指向事件控制块的指针[L6.14(3)]

2017-04-02 19:06:46 134

原创 练习

程序清单 L6.9是OSSemCreate()函数的源代码。首先,它从空闲任务控制块链表中得到一个事件控制块[L6.9(1)],并对空闲事件控制链表的指针进行适当的调整,使它指向下一个空闲的事件控制块[L6.9(2)]。如果这时有任务控制块可用[L6.9(3)],就将该任务控制块的事件类型设置成信号量OS_EVENT_TYPE_SEM[L6.9(4)]。其它的信号量操作函数OSSem???()通过

2017-04-01 19:06:47 144

原创 练习

程序清单 L6.9是OSSemCreate()函数的源代码。首先,它从空闲任务控制块链表中得到一个事件控制块[L6.9(1)],并对空闲事件控制链表的指针进行适当的调整,使它指向下一个空闲的事件控制块[L6.9(2)]。如果这时有任务控制块可用[L6.9(3)],就将该任务控制块的事件类型设置成信号量OS_EVENT_TYPE_SEM[L6.9(4)]。其它的信号量操作函数OSSem???()通过

2017-03-31 18:06:33 117

空空如也

空空如也

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

TA关注的人

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