typedef void(*Func)(void)的简单用途
typedef void(*Func)(void)的用途
用法的好处:
定义一个函数指针类型。
例子:
有三个类型相似或功能相似的函数:
void TASK1(void) { printf("I’m TASK1"); }//函数定义
void TASK2(void) { printf("I’m TASK2"); }//函数定义
void TASK3(void) { printf("I’m TASK3"); }//函数定义
... ...
typdef void (*func)(void);//声明
至此,我们就已经构造好了通用函数
还需要定义一个调用的函数
void gTASK(char i)
{
func vTask[] = {&TASK1, &TASK2, &TASK3};
func fun = vTask[i];
(*fun)();
}
使用gTASK来执行:
执行gTASK(1)会打印出 I’m TASK1
执行gTASK(2) 会打印出I’m TASK2
执行gTASK(3) 会打印出I’m TASK3
PS:typdef void (*func)(void);还有很多好的用处,操作系统源码都用的很巧妙
typedef void(*Func)(void)的简单用途的更多相关文章
- 简述static关键字、void与void *(void指针)、函数指针
static关键字1.修饰局部变量,延长局部变量的生命周期.使变量成为静态局部变量,在编译时就为变量分配内存,直到程序退出才释放存储单元.2.修饰全局变量,限制全局变量的使用范围为本文件中.全局变量默 ...
- 如何理解typedef void (*pfun)(void)
问题: 在刚接触typedef void (*pfun)(void) 这个结构的时候,存在疑惑,为什么typedef后只有一"块"东西,而不是两"块"东西呢?那 ...
- 如何理解这段代码:void (*signal (int sinno,void(*func)(int)))(int)
void (*signal (int sinno,void(*func)(int)))(int) 先来看void(*func)(int) 这里的意思是声明一个函数指针func,它的参数类型为int ...
- 函数指针-如何理解typedef void (*pfun)(void)
问题: 在刚接触typedef void (*pfun)(void) 这个结构的时候,存在疑惑,为什么typedef后只有一"块"东西,而不是两"块"东西呢?那 ...
- NRF51822+STM32bootload——typedef void (*Fun) (void) 理解
1.typdef 用法如下所示 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned ...
- void (*signal(int sig, void (*func) (int))) (int)理解
http://blog.csdn.net/sever2012/article/details/8281271 1.signal( int sig, void (*func)(int))signal是一 ...
- typedef interrupt void (*PINT)(void)的分析
今天写程序时,在DSP2833x_PieVect.h看到typedef interrupt void (*PINT)(void)突然一愣,上网查了下发现在这是加了interrupt 中断关键字的函数指 ...
- typedef int(init_fnc_t) (void)的理解
typedef int(init_fnc_t) (void); 这个就是一个取别名的过程. 我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a; 这个时候我 ...
- typedef void (*funcptr)(void)
定义一个函数指针类型.比如你有三个函数:void hello(void) { printf("你好!"); }void bye(void) { printf("再见!&q ...
随机推荐
- configparser 模块
import configparser #按字典方式操作 config = configparser.ConfigParser() #创建config 对象 #config对象test 等于 {'na ...
- linux 不同服务器之间复制文件
----------------------拷贝文件夹---------------------------------------------- 把当前文件夹tempA拷贝到 目标服务器10.127 ...
- iOS多语言
https://blog.csdn.net/huangmindong/article/details/53464334 App多语言,字符串统一放在 Localizable.strings 文件里. ...
- vue .map 文件
参数: productionSourceMap:false 这个改为false.去掉打包产生的map文件 map文件的作用:定位线上错误代码位置;
- 【Noip模拟 20161005】公约数
问题描述 小ww最近仔细研究了公约数,他想到了以下问题:现有nn个正整数,从中选k(2≤k≤n)k(2≤k≤n) 个,设这kk个数的最大公约数为gg,则这kk个数的价值为k×gk×g.求这个价值的最大 ...
- C语言复习:指针知识
指针知识体系搭建 指针强化 指针是一种数据类型 指针也是一种变量,占有内存空间,用来保存内存地址 测试指针变量占有内存空间大小:sizeof(指针名); 2)*p操作内存 在指针声明时,*号表示所声明 ...
- React之使用Context跨组件树传递数据
--------------------------------- 讲解一 原文:https://blog.csdn.net/xuxiaoping1989/article/details/78480 ...
- Downloadftp
#!/bin/bash FILENAME=$ DSTDIR=$ FTPSRV=ip FTPUSER="user" FTPPWD="password" SRCDI ...
- typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点
typora下载 链接:https://某度云盘的域名/s/1geD1APxnyV3gogYW3E08bQ 密码:8fdp 把某度云盘的域名进行替换 1.标题 # 标题1 ## 标题2 ### 标题3 ...
- yii基础控制器安全验证