摘要: 1. 关于位域表示法:加类型表示在这个类型上分配。如:struct packet_bit{ unsigned char a:2; unsigned char b:3;}bit;//这样bit只在一个字节unsigned char(这种类型占一个字节)内分配内存,而a占了2位,b占3位,故有3位空闲,此时sizeof(bit) = 1struct pakcet_bit{ unsigned int a:2; unsigned int b:3;}bit;//这样在四字节unsigned int(这种类型占4个字节)内分配内存,故有27位空闲,sizeof(bit) = 4... 阅读全文
posted @ 2012-08-26 19:08 dandingyy 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 效果图如下:1.蛇的数据结构使用双链表实现,数据结构如下:typedef struct{ int y; int x;}Pos;typedef struct node{ Pos loc; struct node *prior; struct node *next;}node;typedef struct Dlink{ node *head; node *tail; int count;}Dlink;Dlink snake; //the snake 另外注意,由于要在链表头部插入节点,在尾部删除节点,所以最好选择自带头节点和尾节点的双... 阅读全文
posted @ 2012-08-24 22:45 dandingyy 阅读(2388) 评论(0) 推荐(0) 编辑
摘要: 1.介绍 在linux下如果定时如果要求不太精确的话,使用alarm()和signal()就行了(精确到秒),但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数。 setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个function, 以下程序demo如何使用setitimer()。2.函数参数 1 int setitimer(int which, const struct itimerval *value, struct .. 阅读全文
posted @ 2012-08-23 20:35 dandingyy 阅读(35148) 评论(0) 推荐(2) 编辑
摘要: 1.安装 ubuntu11.10下默认没有安装curses函数库,(CentOS下默认已经安装,可以直接在usr/include下查看是否有该头文件来确定)使用 >sudo apt-get install ncurses-dev 安装curses库,这样在curses函数库的头文件和库文件就被分别安装在/usr/include/和/usr/lib/下,在编译程序时,直接使用命令: gcc program.c -o program -lcurses 完成编译,运行。2.curses术语和概念 curses工作在屏幕,窗口和子窗口之上。屏幕是设备全部可用显示面积(对终端是该窗口内所有可... 阅读全文
posted @ 2012-08-23 19:26 dandingyy 阅读(26529) 评论(0) 推荐(1) 编辑
摘要: 1.core文件介绍 在一个程序崩溃时,它一般会在指定目录生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 用指令>ls –l 可以发现,core是一个很大的文件,动辄上百M,所以一般我们都会及时将它清除掉,从而很少去关注它的真正内涵。默认系统也是阻止生成core文件的。2.开启或关闭core文件 用以下命令来阻止系统生成core文件: ulimit -c 0 (-c选项表示运行生成的core文件大小,后面为0,说明不允许core文件生成) 下面的命令可以检查生成core文件的选项是否打开: ulimit -a 该命令将显示所有的用户定制,其. 阅读全文
posted @ 2012-08-13 20:11 dandingyy 阅读(752) 评论(0) 推荐(0) 编辑