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
时间: 2025-01-19 11:35:33