函数指针架构的代码

博客介绍了函数指针,如声明指向特定函数的指针、赋值方法及调用方式,还指出用函数指针架构有简洁代码、提升实时性、方便任务调度和多CPU协调等好处,并给出了相关例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数指针简介

函数指针指向的是函数而非对象,和其他指针一样,函数指针指向某种特定类型,函数的类型由它的返回类型和形参类型共同决定,与函数名无关。

bool LengthCompare(const string &,const string &)
该函数的类型是bool(const string& ,const string&)。想要声明一个指向改函数的指针,只需要用指针特换函数名即可:

bool (*pf)(const string&, const string&);//未初始化
赋值我们可以通过两种方法赋值:

pf=LengthCompare;

pf=&LengthCompare;

我们还可以直接使用指向函数的指针调用函数,无须提前解引用:

bool b1=pf(“hello”,“goodbye”);
bool b2=(*pf)(“hello”,“goodbye”);
bool b3=LengthCompare(“hello”,“goodbye”);
//三个等价调用
指向不同函数类型的指针之间不存在转换。

用函数指针架构的好处

  • 简洁代码
  • 提升代码的实时性(里面不加while(1)死等状态,而是当需要跳转的时候跳转)
  • 方便做任务调度和多CPU的协调

函数指针架构的例子

typedef struct{
	u32 para1;
}CPU1Var;

Ex void (*processcCPU1)(CPU1Var *);
Ex CPU1Var cpu1_var;

int main(){
	CPU1_init();
	do
	{
		processCPU1(&cpu1_var);
	}while(1);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值