
C语法
鹅凰嶂幽云
这个作者很懒,什么都没留下…
展开
-
函数指针数组
笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都要作类似的处理。若按通常做法,会写出如下代码:void MyFuntion( char* b转载 2011-05-29 17:24:00 · 557 阅读 · 0 评论 -
队列--初学者理解
1。队列的组成结构:有两部分:表示队列 的结构体(一条队列只有一个)、表示结点的结构体(表示队列的成员,可以有多个)。一条队列由一个结构体表示,这个结构体里有两个成员,都是指针:一个指向队列的头结点,一个指向队列的尾结点。这两个指针都是指向结点的,下面讲到的那种结点。队列由很多结点组成,就像排队中的每个人,结点由另外一种结构体表示,里面也有两个东西:一个用来存储数据,叫数据域,一个是指针用来指向下一个结构体,叫指针域。事实这些结点就是一条单向链表。队头就是单向链表头,队尾就是单向链表尾。队列的功能就是为了让原创 2011-05-28 10:25:00 · 386 阅读 · 0 评论 -
函数指针数组与返回数组指针的函数
int (*a[])(int);int (*p())[10];第一种情况为数组里面是函数指针的情况,因为(int (*)(int))是一个强制转换方式, 将里面的a[]这个数组转换成了一个函数指针的数组, 并且该函数是一个带一个整型变量,并且返回一个整型的函数.第二种情况为函数返回的为指向一个一维数组的指针的情况. 因为(int (*)[10])将其强制转换成了一个指针,而该指针则是一个指向一维数组的指针.分别举两个例子进行说明:对于第一种函数指针数组的情况,如下:#includeint fun转载 2011-05-29 17:31:00 · 379 阅读 · 0 评论 -
实现printf函数
<br /><br />根据综合研究5的showchar()函数,可以了解参数都是由栈传递的,所要传递参数的个数也可以由栈传递。那么printf函数要输出的参数肯定也是由栈传递。另外一点就是printf函数肯定有某种信息,这种信息记录了需要打印的个数。<br /> <br />main()<br />{<br /> printf("%c,%d/n",'a',2);<br />}<br />函数如上,编译连接后用反汇编查看cs:01fa<br />能看出来,打印的参数‘a’,2都是由栈传递。入栈的时候还有一个转载 2011-05-30 21:39:00 · 489 阅读 · 0 评论