摘要: 我认为的一条学习嵌入式Linux的路:1)学习Linux系统安装、常用命令、应用程序安装。2)学习Linux下的C编程、这本书必学《UNIX环境高级编程》、《UNIX 网络编程》,RechardStevens写的,C高手大都学习过《C和指针》、《C缺陷与陷阱》、《高质量C/C++编程指南》、《C专家编程》、《TheCprogrammingLanguage》3)程序员大都要学:数据结构,嵌入式程序员数据结构必学!4)底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!5)单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从ARM入手,不太现实!6)ARM体 阅读全文
posted @ 2014-01-30 13:21 liuyi_001 阅读(398) 评论(0) 推荐(0) 编辑
摘要: c语言预处理程序有三种,分别是:1.包含头文件,如:#include 2.宏定义(本质是字符串的替换) 如 :#define 宏名 串(宏体)#define PI 3.14159#undef 终止宏定义的作用域如:#undef PI 注:双引号内与宏同名的字符串不做宏体展开#define R 3.0#define PI 3.14159#define L 2*PI*R /*宏体是表达式*/注:引用宏只占编译时间,不占运行时间。引用宏没有返回值。带参数的宏定义的一般形式:#define 宏名(参数表) 字符串如:#define S(a,b) a*b /* 对宏定义来说参数不需要指明... 阅读全文
posted @ 2014-01-30 12:28 liuyi_001 阅读(298) 评论(0) 推荐(1) 编辑
摘要: c语言中变量分为四类,分别是1.auto 自动变量2.static 静态存贮分配变量(又分为内部静态和外部静态)3.extern 全程变量(用于外部变量说明)4.register 寄存器变量(分配在硬件寄存器中)四大类,所有变量必须先说明(定义),后使用。下面分别介绍1.自动变量(局部变量)局部变量:在一个函数开头或段开头处说明的变量,它有几个特征,,a、作用域为定义它的函数b、编译器不会对自动变量给予隐含的初值,故其值不确定,因此每次使用前必须明确的置初值。c、形参是自动变量,作用域仅限于相应函数内d、自动变量随函数的引用而存在和消失,由一次调用到下一次调用之间不保持值。[plain]v.. 阅读全文
posted @ 2014-01-30 12:18 liuyi_001 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇. 有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有 阅读全文
posted @ 2014-01-15 12:54 liuyi_001 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 今天讨论下数据结构中的排序算法。排序算法的相关知识:(1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。(2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的。相反,如果发生改变,这种排序方法不稳定。(3)排序算法的分类(分为5类):插入排序、选择排序、交换排序、归并排序和分配排序。(4)排序算法两个基本操作:比较关键字的大小。 改变指向记录的指针或移动记录本身。具体的排序方法:插入排序插入排序(Insertion Sort)的思想:每次将一个待排序的记录按其关键字. 阅读全文
posted @ 2012-09-16 21:19 liuyi_001 阅读(1204) 评论(0) 推荐(0) 编辑
摘要: 接着上节讲数据结构中的树,要理解树,最重要的是要理解:二叉排序树、平衡二叉树和红黑树。今天就来讨论这几种树。二叉排序树 概念:二叉排序树又叫二叉查找树、二叉搜索树、二叉检索树。二叉排序树是二叉树的一个特化,二叉排序树规定了每个结点的关键字均大于其左子树上所有的结点的关键字,同时小于或等于其右子树上所有结点的关键字。所以,从二叉排序树的根结点一直往左走,直到底,就可以得到最小值;从根结点一起往右走,直到底,就可以得到最大值。二叉排序树的这种特殊性质使得它在查找元素方面的时候特别方便,每一次查找都可以去掉一半的元素,因此查找的时间是O(logN)。 二叉排序树的算法:(1)二叉排序树的查找算法t. 阅读全文
posted @ 2012-09-16 21:18 liuyi_001 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 树是数据结构中很重要的一环,更是C/C++高手的挚爱。 今天就来讨论下数据结构中的树。 先梳理下关于树一些基本概念。树的基本概念(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。(2)根(Root):有且仅有一个结点的非空树,那个结点就是根。(3)子树(Subtree):在一棵非空树中,除根外,其余所有结点可以分为m(m≥0)个互不相交的集合。每个集合本身又是一棵树,称为根的子树。(4)结点(Node):表示树中的元素及若干指向其子树的分支。(5)结点的度(Degree):一个结点拥有. 阅读全文
posted @ 2012-09-16 21:18 liuyi_001 阅读(11009) 评论(0) 推荐(1) 编辑
摘要: 今天来讨论下链表中的双向链表。双向链表: 概念:在双向链表中,结点除含有数据域外,还含有两个指针域:一个存储直接后继结点的地址,称为右链域;另一个存储直接前驱结点的地址,称为左链域。typedef struct node { int num; //数值域 struct node *lnext; //左链域指针 struct node *rnect; //右链域指针}stud; 双向链表常用算法:先对三个指针作个声明:head:用来指向链表的头部。链表需要一个指针来标识,这就是头指针。p1:用来指向新结点,以及用来遍历链表的每一个结点。... 阅读全文
posted @ 2012-09-16 21:17 liuyi_001 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 本文就循环链表做一些讨论:循环链表: 概念:所谓循环链表,就是在单链表的基础上,把链表最后一个结点的链表指针指向链表的头结点的地址,就构成了一个循环链表。 关键算法:先对三个指针作下声明:head:用来指向链表的头部。链表需要一个指针来标识,这就是头指针。p1:用来指向新结点,以及用来遍历链表的每一个结点。p2:用来指向当前结点。(1)循环链表创建算法创建一个结点数目为n的循环链表:#include typedef struct node { int num; struct node *next; }stud;stud* Create(int n) { stud *he... 阅读全文
posted @ 2012-09-16 21:16 liuyi_001 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 链表主要就单链表、循环链表和双向链表3种链表进行讨论。一、单链表 概念:所谓单链表,是指数据结点是单向排列的。一个单链表结点,其结构类型分为两部分: (1)数据域:用于存储数据元素的值。 (2)指针域(链域):用于存储下一个结点地址或者说指向其直接后继结点的指针。 算法:一般声明3个指针来操作链表:head:用来指向链表的头部。链表需要一个指针来标识链表,这就是头指针。p1:用来指向新结点,以及用来遍历链表的每一个结点。p2:用来指向当前结点。(1)单链表创建算法创建结点数目为n的链表:#include typedef struct node { int num; ... 阅读全文
posted @ 2012-09-16 21:15 liuyi_001 阅读(313) 评论(0) 推荐(0) 编辑