上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 算法导论上对归并排序的算法描述如下基本思想是将序列分成两部分 L R,然后合并,L R 是有序的算法的合并过程: Pseudocode: MERGE(A, p, q, r ) n1 ← q − p + 1 n2 ←r − q create arrays L[1 . . n1 + 1] and R[1 . . n2 + 1] for i ← 1 to n1 do L[i ] ← A[p + i − 1] for j ← 1 to n2 do R[ j ] ← A[q + j ] L[n1 + 1]←∞ R[n2 + 1]←∞ i ← 1 j ← 1 for k ← p to r do if L[ 阅读全文
posted @ 2011-07-06 01:24 foreverlearn 阅读(186) 评论(0) 推荐(0) 编辑
摘要: volatile 关键字声明的变量 编译器对访问该变量的代码不再优化,从而可以提供对特殊地址的稳定访问例如:int i = 10;int j = i; // 1int k = i; // 21 编译器取出 i = 10 赋给j后 编译器会认为i无变化,不再从内存中将i取出而是直接赋给kvolatile int i = 10;int j = i; // 1int k = i; // 2volatile关键字高诉编译器 i是随时可变的,每次使用它的时候必须从内存中取出i的值,因而编译器产生的汇编代码会重新从i的地址读取i的值,放在k中源自 : 陈正冲《c语言深度剖析》在linu内核... 阅读全文
posted @ 2011-07-05 23:00 foreverlearn 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 结构体中常见的冒号的用法是表示位域。 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为: struct 位域结构... 阅读全文
posted @ 2011-06-29 23:08 foreverlearn 阅读(155) 评论(0) 推荐(0) 编辑
摘要: //在数组a[]中a+1 和&a+1的区别 a+1表示a[1]而&a+1表示的下一a对象的地址 #include"stdio.h" void main() { int a[5] = {1,2,3,4,5}; char s[5] = {'a','b','c','d','e'}; printf("1:--%d/n",a); printf("2:--%d/n",a+1); printf("3:--%d/n",*(a+1)); 阅读全文
posted @ 2011-06-27 23:03 foreverlearn 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 转自: http://blog.chinaunix.net/space.php?uid=22566367&do=blog&id=382046最近,遇到一个c语言的不定参数问题。其实,对于c语言的不定参数问题,只需要三个函数就可以搞定了。这三个函数的头文件是<stdarg.h>,其实下面的三个函数都是一个宏定义(macro)。 这三个函数是: void va_start(va_list ap, last); type va_arg(va_list ap, type); void va_end(va_list ap); 如果需要进行其他的一些操作,可以查看一下man手. 阅读全文
posted @ 2011-06-23 00:36 foreverlearn 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 使用友善之臂mini2440开发板 Step1:配置内核 make menuconfig Load an Alternate Configuration File 选择config_n35 Step2:将驱动程序源码放置于kernel-2.6.13/drivers/char目录下,名为qq2440_hello_module.c,内容如下: #include <linux/kernel.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init qq2440_hello_m 阅读全文
posted @ 2011-06-01 20:18 foreverlearn 阅读(173) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>/*看本程序要有的最基本大知识1 typedef listnode *linklist(linklist是指向listnode的指针) linklist p,声明p是指向listnode的指针2 c语言实现引用大方法 int fun(int *x,int *y) void main() { int a, b; //要想改变a,b的值 fun(&a,&b); }*/typedef char datatype;typedef struct node{ datatype data; struct node *next;} li... 阅读全文
posted @ 2011-05-31 18:39 foreverlearn 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 实现VMware共享本地文件夹如果你想用共享文件夹,你必须在客户机中安装与VMworkstation版本相同的vm-tools并且在你的虚拟机设置中指定共享目录。VMware Workstation 5包含了性能增强了的共享文件夹功能。你能够使用共享文件夹功能在以下客户操作系统中: Windows Server 2003 Windows XP Windows 2000 Windows NT 4.0 拥有2.4版或更高版本核心的Linux不支持98客户机screen.width/2)this.style.width=screen.width/2;" border="0&quo 阅读全文
posted @ 2011-05-27 21:47 foreverlearn 阅读(249) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#define container_of(ptr, type, member) ({ / const typeof( ((type *)0)->member ) *__mptr = (ptr); / (type *)( (char *)__mptr - offsetof(type,member) );})#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)/*ptr是指向结构体成员的指针type是结构体的类型,例如struct abcmember是成员的变量 阅读全文
posted @ 2011-05-25 12:06 foreverlearn 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 表达式1 ? 表达式2:表达式31 2 3 可以使任何类型的表达式,意思是 如果表达式1成立那么表达式2,否则表达式3举例说明:#include"stdio.h"char a[3] = {'a','b','c'};char b[3] = {'d','e','f'}; void main(){ int m = 1; char c; c = (m==1?a:b)[2]; printf("%c",c); c = (m==2?a:b)[2]; printf(" 阅读全文
posted @ 2011-05-22 20:11 foreverlearn 阅读(375) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页