首页 > 代码库 > 查找函数和跳转函数
查找函数和跳转函数
1.
查找函数bsearch()
查找字符在已排列好的字符中的位置,返回第一个匹配的指针,否则NULL
#include<stdio.h>#include<stdlib.h>void *bsearch(const void *key,const void *buf,size_t num,size_t size,int (*compare)(const void *,const void *));
key是指向关键字的指针,buf是已排列好的字符串(从低到高)num是数组元素数目,size是每个元素占的字节数,compare函数必须是比较参数的函数,返回是arg1<arg2,arg1=arg2,arg1>arg2
这是折半查找必须的参数,参数分别是关键字指针和指向数组元素的指针。
2.
#include<setjmp.h>int setjmp(jmp_buf envbuf);void longjmp(jmp_buf envbuf,int status);
envbuf是保存当前执行的系统堆栈信息,为longjmp提供跳转的位置,longjmp不返回,但是status作为setjmp的返回值,envbuf是从setjmp得到的。
示例:
1 #include<setjmp.h> 2 #include<stdio.h> 3 4 jmp_buf envbuf; 5 void foo(void); 6 7 int main(void) 8 { 9 int i;10 11 printf("1\n");12 i=setjmp(envbuf);13 if(i==0)14 {15 foo();16 printf("this will not be printed\n");17 }18 printf("%d\n",i);19 return 0;20 }21 22 void foo(void)23 {24 printf("3\n");25 longjmp(envbuf,5);26 }
结果是
1
3
5
查找函数和跳转函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。