摘要:
1.sockaddr结构体 sockaddr结构体包含了网络地址和端口的一些数据。以下三个函数实现了字符串转sockaddr结构体的功能。 1 int inet_aton(const char *strptr, struct in_addr *addrptr); 2 in_addr_t inet_a 阅读全文
摘要:
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程... 阅读全文
摘要:
树的遍历有前序,后序,广度,以及中序遍历。下边将利用递归以及非递归的方式实现这几种遍历方式。1.前序遍历递归写法: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * ... 阅读全文
摘要:
JOS是MIT操作系统对应的课程设计其课程地址在http://pdos.csail.mit.edu/6.828/2014/index.htmlLAB1:系统的启动 这里主要讲了两个关键的点操作系统的启动程序的之间的调用关系1.操作系统的启动的过程主要通过以下几个步骤首先运行BIOS,这里BIOS完... 阅读全文
摘要:
item1:c++一些简单介绍,template, stl之类。item2:尽量使用const ,enum以及inline。const的使用就不多提了,还是为了保护数据。enum以及inline可以替代define绝大多数的工作。另外需要注意的一点是使用enum可以达到不让通过指针访问这个变量的特点... 阅读全文
摘要:
语法分析器的知识框图懒得详细总结了。简单说下LR以及LL算法。 LR与LL代表两种对语法的分析方法,第一个字母代表程序的读入顺序,即从左向右读,第二个代表规则的推导,LR代表从右向左推导,LL代表从左向右推导。后边如果有数字的话,代表前看符号。LR算法相比较LL则可以分析更多的文法,也不需要进行一... 阅读全文
摘要:
总结一些编译原理词法分析的内容。1 简单介绍 对于编译语言而言,程序都需要通过编译器编译成二进制的代码,这样才可以在计算机上运行。对于现在的程序而言,并不能直接将其翻译成二进制可执行文件。中间需要若干中间环节,其中通常包含词法分析器,语法分析器,语意分析器。这里主要总结一下词法分析器。 词法分析... 阅读全文
摘要:
排序相关的算法复杂度分析下边分别实现下各个算法简单选择排序 1 //简单选择排序 2 void Select_Sort(int a[], int n) 3 { 4 int min; 5 for(int i = 0; i = 0; i--) 5 { 6 int ... 阅读全文