函数调用(函数指针)
发布网友
发布时间:2022-05-18 09:11
我来回答
共1个回答
热心网友
时间:2023-10-13 05:10
一般需要定义一个函数指针类型
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
);}