typedef void (*funcptr)(void) 什么意思
4个回答
展开全部
定义一个函数指针类型。
比如你有三个函数:
void hello(void) { printf("你好!"); }
void bye(void) { printf("再见!"); }
void ok(void) { printf("好的!"); }
typdef void (*funcptr)(void);
这样就构造了一个通用的函数
你用的时候可以这样:
void speak(int id)
{
funcptr words[3] = {&hello, &bye, &ok};
funcptr fun = words[id];
(*fun)();
}
这样的话,如果speak(0)就会显示“你好!”
speak(1)就会显示“再见!”
speak(2)就会显示“好的!”
用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用函数指针。
比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
比如你有三个函数:
void hello(void) { printf("你好!"); }
void bye(void) { printf("再见!"); }
void ok(void) { printf("好的!"); }
typdef void (*funcptr)(void);
这样就构造了一个通用的函数
你用的时候可以这样:
void speak(int id)
{
funcptr words[3] = {&hello, &bye, &ok};
funcptr fun = words[id];
(*fun)();
}
这样的话,如果speak(0)就会显示“你好!”
speak(1)就会显示“再见!”
speak(2)就会显示“好的!”
用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用函数指针。
比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
这里是定义了一个指向参数为空,返回值为空的函数的指针类型。
比如:
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef void ( *funcptr)(void); //定义指针类型
void fun1(void) //定义函数一
{
cout << "This is fun1" << endl;
}
void fun2(void) 定义函数二
{
cout << "This is fun2" << endl;
}
int main()
{
funcptr p1; //定义了一个该类型的指针p1
p1 = fun1; //p1指向函数一
p1();
p1 = fun2; //p1指向函数二
p1();
system("pause");
}
/*********************************************/
一看这名字就知道是doter 有空打dota
比如:
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef void ( *funcptr)(void); //定义指针类型
void fun1(void) //定义函数一
{
cout << "This is fun1" << endl;
}
void fun2(void) 定义函数二
{
cout << "This is fun2" << endl;
}
int main()
{
funcptr p1; //定义了一个该类型的指针p1
p1 = fun1; //p1指向函数一
p1();
p1 = fun2; //p1指向函数二
p1();
system("pause");
}
/*********************************************/
一看这名字就知道是doter 有空打dota
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef 是用来起别名的,
例如:
typedef char* PCHAR; 给char* 指针起了个别名,PCHAR。
PCHAR pa, pb; 声明char* 型指针就可以用PCHAR 来声明。
typedef void (*funcptr)(void) 给void (* )(void) 起了个别名:funcptr。
声名函数指针:void (* )(void),就可以用funcptr 来声明,即: funcptr fun1;
用void (*funcptr)(void);来直接声明函数指针也行。但是不能写成 funcptr fun1;
用typedef 可以简化声明,也更清晰。
更详细的描述在 网址 : 网页链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实际上是指针函数,只要具有相同的参数。就可以用指针函数指向想调用的函数名。执行该指针对象函数即可!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询