socketref,再见!高德

https://github.com/adoggie

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用链接

留言簿(54)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在移植glib到wince环境时,发现wince的c runtime library不包含很多库函数,诸如 bsearch() 半則搜索法,其用法有点像 std::bind2nd(),
费了点时间将其刨了出来,相信对有些人有用

 1 void * bsearch(
 2          const void *key,
 3         const void *base0,
 4         size_t nmemb,
 5          size_t size,
 6          int (*compar)(const void *const void *)) {
 7 
 8          const char *base = base0;
 9          size_t lim;
10          int cmp;
11          const void *p;
12 
13         for (lim = nmemb; lim != 0; lim >>= 1) {
14                 p = base + (lim >> 1* size;
15                 cmp = (*compar)(key, p);
16                 if (cmp == 0)
17                         return ((void *)p);
18                 if (cmp > 0) {  /* key > p: move right */
19                         base = (char *)p + size;
20                         lim--;
21                 }               /* else move left */
22         }
23         return (NULL);
24 }


posted on 2008-05-07 01:33 放屁阿狗 阅读(716) 评论(1)  编辑 收藏 引用 所属分类: OpenSource开源工程WINCE

Feedback

# re: bsearch(0 2009-11-19 10:01 橘子
我也碰到这个问题了。谢谢啊。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理