首页 > 代码库 > 查找函数和跳转函数

查找函数和跳转函数

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

查找函数和跳转函数