c++bool型回调函数的用法
一、什么是bool型回调函数?
bool型回调函数是一种需要返回bool类型的函数,它的原型类型为:
bool callbackfunc(void* param1, void* param2,…);
其中param1、param2…参数可以根据具体需要来定义。
二、bool型回调函数的用法
1、在某个函数中使用bool型回调函数:
例如,我们需要实现一个查一个数组中满足某种条件的元素的功能,则可以使用bool型回调函数来实现:
typedef bool (*callbackfunc_t)(void* elem, void* userdata);
int find(void* array, int size, callbackfunc_t cb, void* userdata){
for (int i=0; i<size; i++)
if (cb(array[i], userdata)) return i;
return -1;
}
上述定义的回调函数callbackfunc_t的参数elem是每一次查时传入的array元素,userdata是调用者传入的用户数据,返回值bool表示该元素是否满足查条件。
2、调用该函数
将find函数用于查数组元素中值大于100的元素,可以这样实现:
// 17个整数的数组
int arr[17] = {0, 12, 130, -14, 87, -95, 59, -22, 11, 10, 79, -94, 12, 82, 30, 98, -87};
int index;
if((index = find(arr, 17, bool find_gt_100 (void* elem, void* userdata){
// elem是每次查到的元素
// userdata是调用者传入的用户数据,此处未使用
int value = *((int*)elem);
return (value > 100);
}, NULL)) != -1){
printf('the index of element which is greater than 100 is %d
', index);
}
上述代码的执行结果为:怎么用printf输出bool函数值
the index of element which is greater than 100 is 2
即查结果为arr中的第三个元素,其值为130。
三、总结
bool型回调函数是一种可以满足特定条件的函数,它有助于提高代码可重用性,可以根据不同场景对回调函数传入不同的回调函数和参数,以达到不同的功能需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论