摘要: 一、线性表A.顺序表数据结构设计typedef struct{DATATYPE buf[MAX];int n;}SEQLIST;1.插入元素(seq)seq->buf[seq->n] = data;2.按位置插入(seq,post,data)mov_n = seq->n + 1 - post + 1for(i = seq->n; mov_n > 0; i --,mov_n --){seq->buf[i+1] = seq->buf[i]}seq->buf[post-1] = data;3.删除一个指定的元素(seq,key)for(i = 0,j 阅读全文
posted @ 2012-11-13 21:12 雪中飞 阅读(471) 评论(0) 推荐(0) 编辑
摘要: ulimint -a 用来显示当前的各种用户进程限制Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进程数,一些需要设置为无限制:数据段长度:ulimit -d unlimited最大内存大小:ulimit -m unlimited堆栈大小:ulimit -s unlimited我们在用这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件:ulimit -c unlimited 生成core文件ulimit -c unlimited --> cc -g hello.c --> ./a.out --> 阅读全文
posted @ 2012-11-13 20:13 雪中飞 阅读(1551) 评论(0) 推荐(0) 编辑
摘要: 1.函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。全局变量或静态变量,放在数据段,局部变量放在栈中,用new产生的对象放在堆中,内存分为4段,栈区,堆区,代码区,全局变量区BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。2.代码段、数据段、栈是CPU级别的逻辑概念,堆是语言级别的逻辑概念3.还有一个常量区,其中的内容不许修改。常见的 char *p = "hello"; 这里面的&quo 阅读全文
posted @ 2012-11-12 20:51 雪中飞 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 冯.诺伊曼结构 1945年,冯.诺伊曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺伊曼型结构”计算机。冯.诺伊曼结构的处理器使用同一个存储器,经由同一个总线传输.冯.诺伊曼结构处理器具有以下几个特点:必须有一个存储器;必须有一个控制器;必须有一个运算器,用于完成算术运算和逻辑运算;必须有输入和输出设备,用于进行人机通信。 冯.诺伊曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算 阅读全文
posted @ 2012-11-12 09:18 雪中飞 阅读(427) 评论(1) 推荐(0) 编辑
摘要: 时钟产生单元:CGU系统振荡器:外部振荡器IRC振荡器:内部振荡器看门狗振荡器:倍频之前的时钟:sys_pllclkin倍频之后的时钟:sys_pllclkout主时钟源选择寄存器:MAINCLKSELPLL倍频LPC1114发挥最大性能,选择PLL后的时钟,SYSCON->MAINCLKSEL = 0x00000003; // 主时钟选择PLL后的时钟SYSPLLCLKSEL:系统倍频时钟源选择寄存器,0-1位:00 选择IRC振荡器。01 系统振荡器10选择看门狗震荡器。11保留。SYSCON->SYSPLLCLKSEL = 0x00000001;//PLL时钟源选择系统振荡器 阅读全文
posted @ 2012-11-07 14:27 雪中飞 阅读(4762) 评论(0) 推荐(0) 编辑
摘要: 1.inode是一个数值,通过ls -i 命令可以查看某文件的inode值。2.本质上inode是一个索引号,也可以理解为一个指针,指向唯一的一个文件,准确的是说是指向一个文件的存储区,该存储区是属于该文件的一部分,不一定是全部。3.因此,有两个或多个inode指向同一个文件的情况。即inode和文件不是一一对应的关系。是n对1的关系。(n>=1)4.当文件拷贝时,理所当然的会创建新的inode,而且也复制了数据区。尽管两个文件完全一样。即:复制文件时,产生两个完全独立的文件。5.硬链接:为原文件创建一个新的文件名,但本质中只增加了一个目录项,并使用与原来相等的inode,指向原文件的区 阅读全文
posted @ 2012-11-06 09:07 雪中飞 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: 2011-07-26 11:22 1071人阅读 评论(0) 收藏 举报Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里已备查看。1 Shell中的特殊符号1.1 $ 美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。1.2 # 井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。1.3 “” 双引号。shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只 阅读全文
posted @ 2012-10-25 17:29 雪中飞 阅读(480) 评论(0) 推荐(0) 编辑
摘要: Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们是可以理解的,智能手机本身就要启动很多服务来支持应用的功能,并且Android系统大部分还是使用的Java语言编写的,必然要运行在Java虚拟机里,这也决定了它运行速度和启动速度都相对较慢。同时,Android系统为了在执行用户应用程序时提高用户体验,还做了一些预加载机制,这也牺牲了开机启动时间。根据Android启动过程的分析可知,我们可以进行定制加速如下:Ø 定制本地服务Ø 定制Android系统服务Ø 阅读全文
posted @ 2012-10-24 15:40 雪中飞 阅读(5060) 评论(0) 推荐(0) 编辑
摘要: source buile/envsetup.shlunch sdk-engmake sdk -j2编译完之后,sdk安装在了下面的目录里ANDROIID_DIR/out/host/linux-x86/sdk在这个目录下有一个压缩包,里面就是我们从eclipse里下载的sdk的包。如果你做过app开发都会知道,我们只有下载了不同版本的sdk之后才能创建不同版本的模拟器,我们编译完sdk之后就可以创建模拟器了$ cd ANDROIID_DIR/out/host/linux-x86/sdk/android-sdk_eng.linux_linux-x86/tools首先,查看当前sdk的Id号,用于创 阅读全文
posted @ 2012-10-24 08:26 雪中飞 阅读(658) 评论(0) 推荐(0) 编辑
摘要: Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|-- external (android使用的一些开源的模组)|-- frameworks (核心框架——java及C++语言)|-- hard... 阅读全文
posted @ 2012-10-24 08:23 雪中飞 阅读(301) 评论(0) 推荐(0) 编辑