摘要: gcc指定不同版本c语言的选项:GNU 89(gnu对C89做的修改版本) : 默认,-std=gnu89ANSI, ISO C90: -ansi, -std=c89(ANSI C(C89) 与 ISO C(C90)内容基本相同,主要是格式组织不一样)ISO C99: -std=c99GNU 99(... 阅读全文
posted @ 2014-09-13 13:33 shaughn 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: int f(int); //函数声明int (*pf) = &f; /*函数指针初始化 其中&符号时可选的,因为函数名被使用时总是由编译器转换为函数指针*///函数指针声明并初始化后, 可以用3中方法调用int ans;ans = f(3);ans = pf(3);a... 阅读全文
posted @ 2014-09-09 12:51 shaughn 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 网上有一篇非常详细的寻找定义的过程,自己也做了做。 过程: 1.先在/usr/include/i386-linux-gun找到 #ifndef __ssize_t _defined typedef __ssize_t ssize_t 2.文件中再没有相关线索,但是有#... 阅读全文
posted @ 2014-09-09 12:41 shaughn 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 3 int main() 4 { 5 int n,i , j, a[100], a1[100]; 6 while(scanf("%d", &n) == 1) 7 { 8 for(i = 0; i0; i--)14 ... 阅读全文
posted @ 2014-09-01 23:59 shaughn 阅读(174) 评论(0) 推荐(0) 编辑
摘要: unp 118 页当服务器程序中的 sig_chld(int signo) 改用 waitpid 并指定WNOHANG(while循环) 选项时,就可以处理同时多个客户断开的情况 1 void 2 sig_chld(int signo) 3 { 4 pid_t pid; 5 int stat; 6 7 while ( waitpid(-1, &stat, WNOHANG) < 0) 8 printf("child %d terminated\n"); 9 10 return ;11 }因为当waitpid 指... 阅读全文
posted @ 2014-04-01 18:21 shaughn 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 1.声明一个指向整型数组的指针 int (*p)[10];2.如果一个 一维数组matrix[10] 作为函数参数 , 则函数原型应为: void func( int *ptr ); 或 void func( int ptr[]); 如果一个 二维数组matrix[10][10] 作为函数参数 , 则函数原型为 : void func( int (*ptr)[10] ); 或 void func( int ptr[][10] ); 因为 ptr 的第一个下标要根据 第二个下标(整型数组的长度)进行调整,第二个下标根据整型长度调整 而一维的数组 作为参数时,计算下标... 阅读全文
posted @ 2014-03-31 17:52 shaughn 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define的用法#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代 阅读全文
posted @ 2014-02-03 13:52 shaughn 阅读(224) 评论(0) 推荐(0) 编辑
摘要: (转)ubuntu中man的手册默认没有装。用下面几条命令就行了:sudo apt-get install manpagessudo apt-get install manpages-desudo apt-get install manpages-de-devsudo apt-get install manpages-dev另附上一篇从他人处copy来的文章:ubuntu man手册完善Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。Linux 的man手册共有以下几个章节:1、Standard commands (标准命令)2、System 阅读全文
posted @ 2014-01-25 01:31 shaughn 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 赫夫曼编码 1 //构造赫夫曼树 实现赫夫曼编码 2 3 #include 4 #include 5 #define MAX 10 6 #define MAXW 1000 7 8 typedef struct HNODE //定义 赫夫曼树的节点结构 9 { ... 阅读全文
posted @ 2013-12-25 22:23 shaughn 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上 阅读全文
posted @ 2013-12-23 22:13 shaughn 阅读(223) 评论(0) 推荐(0) 编辑