2011年5月29日

变长参数表

摘要: 以实现函数printf的一个最简单版本为例,介绍如何以可移植的方式编写可处理变长参数表的函数。因为我们的重点在于参数的处理,所以,函数minprintf只处理格式字符串和参数,格式转换则通过调用函数printf实现。 函数printf的正确声明形式为:int printf(char* fmt, ...) 其中,省略号表示参数表中参数的数量和类型是可变的。省略号只能出现在参数表的尾部。因为minprintf函数不需要想printf函数一样返回实际输出的字符数,因此,我们将它声明为下列形式:void minprintf(char* fmt, ...) 编写函数minprintf的关键在于如何处理. 阅读全文

posted @ 2011-05-29 23:46 NULL00 阅读(859) 评论(0) 推荐(0) 编辑

编程珠玑-位排序(bitsort)

摘要: 在《编程珠玑》一书上,有一题是将一堆不重复的数进行排序,这些数的值大小位于[0, 10000000).然后作者在书后给出的答案确实很精辟,利用位排序将这个问题轻而易举的解决了。 首先弄懂i>>SHIFT相当于i/32,i&MASK相当于i%32. 题目中说了 Replace above 2 line 阅读全文

posted @ 2011-05-29 01:36 NULL00 阅读(4461) 评论(4) 推荐(1) 编辑

导航