如何通过函数指针调用函数
1个回答
推荐于2016-06-19 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517170
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
一般需要定义一个函数指针类型
typedef int (*function_pointer_t) ( int arg1, int arg2 );
然后,定义函数指针变量
function_pointer_t fp_invoker = 0;
函数指针可以动态改变内容,改变调用对象,假设有两个函数
int function_sum( int arg1, int arg2 )
{
return arg1+arg2;
}
int function_sub( int arg1, int arg2 )
{
return arg1-arg2;
}
注意到两个函数的原型与函数指针类型是一致旦厅缓的。以下是调用
fp_invoker = function_sum; // 直接用函数名赋值即可
fp_invoker(1,2); // 调用时模模,可以认为函数指针便是函数名,此时调用加法
fp_invoker = function_sub; // 同理,切换到减法
fp_invoker(1,2); // 调用减法
以上都是直观的用法,通常函数指针用于回调,即下层函数先将函数指针内容保存起来,处理结束后,再调用。此时要注意首先检查函数指针内容是否为伏悉空。
if( fp_invoker ){
fp_invoker( arg1, arg2 );
}
typedef int (*function_pointer_t) ( int arg1, int arg2 );
然后,定义函数指针变量
function_pointer_t fp_invoker = 0;
函数指针可以动态改变内容,改变调用对象,假设有两个函数
int function_sum( int arg1, int arg2 )
{
return arg1+arg2;
}
int function_sub( int arg1, int arg2 )
{
return arg1-arg2;
}
注意到两个函数的原型与函数指针类型是一致旦厅缓的。以下是调用
fp_invoker = function_sum; // 直接用函数名赋值即可
fp_invoker(1,2); // 调用时模模,可以认为函数指针便是函数名,此时调用加法
fp_invoker = function_sub; // 同理,切换到减法
fp_invoker(1,2); // 调用减法
以上都是直观的用法,通常函数指针用于回调,即下层函数先将函数指针内容保存起来,处理结束后,再调用。此时要注意首先检查函数指针内容是否为伏悉空。
if( fp_invoker ){
fp_invoker( arg1, arg2 );
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询