Head First C 读书笔记(二)
来源:互联网 发布:java输入整数异常 编辑:程序博客网 时间:2024/05/16 19:53
函数指针:
type (*name)(parameter types)
调用: name(parameter)
函数指针数组:
type (*name[])(parameter types) = { };
使用函数指针数组简化程序——分手信自动生成器:
#include <stdio.h>enum response_type {DUMP, SECOND_CHANCE, MARRIAGE};typedef struct {char *name;enum response_type type;}response;void dump (response r){printf("Dear %s, \n", r.name);puts("Unfortunately your last date contacted us to...");}void second_chance(response r){printf("Dear %s, \n", r.name);puts("Good news: your last date has asked us to...");}void marriage(response r){printf("Dear %s, \n", r.name);puts("Congratulations! Your last date has contacted...");}// function pointer arrayvoid (*replies[])(response) = {dump, second_chance, marriage};int main() {response r[] = {{"Mike", DUMP}, {"Luis", SECOND_CHANCE},{"Matt", SECOND_CHANCE}, {"William", MARRIAGE}};int i;for(i=0; i<4; i++)(replies[r[i].type])(r[i]); }
程序中本来需要使用 switch 语句对枚举类型进行判断后才能调用函数,但是这里用函数指针数组不需要判断,直接调用了对应的函数。
0 0
- Head First C 读书笔记(二)
- 《Head First设计模式》读书笔记(二)
- Head First JavaScript 读书笔记(二)
- Head First C 读书笔记(一)
- 《Head First设计模式》 读书笔记05 工厂模式(二)
- Head First HTML与CSS 读书笔记(二) Font
- Head First C (前半部分)读书笔记
- Head First C (后半部分)读书笔记
- Head First OOA /D读书笔记(二)
- 高级函数--Head First C读书笔记
- 《Head First设计模式》读书笔记(1)
- 读书笔记(Head.First设计模式)
- 《Head First设计模式》读书笔记(一)
- Head First JavaScript 读书笔记(一)
- head first python读书笔记(十)
- head first python读书笔记(十一)
- head first python 读书笔记(十二)
- Head First Java读书笔记 (一)
- Linux Kernel设备驱动模型之设备初始化
- VMware12.0下安装Ubuntu14.04 LTS
- 使用Dcxygen对代码进行文档自动生成
- FPGA的引脚VCCINT 、VCCO
- 图片底部遮罩效果
- Head First C 读书笔记(二)
- 78. Subsets 【LeetCode算法之旅之深度优先搜索】
- :提高查询的效率 创建定时任务
- 华为机试-判断两个IP是否属于同一个子网
- eclipse中运行项目报错:Project xxx cannot reference itself
- 加法变乘法
- c++类型转换时的符号位扩展
- ES6——Day2(数组的解构赋值)
- android studio中Genymotion创建的模拟器无法关闭删除的问题