C语言完美演绎8-18

/* 范例:8-18 */

#include <stdio.h>

void procreation(int,void (*run)(char*,int)); /* 以函数指针为参数 */

void slow_run_shoes(char*,int);

void leisure_shoes(char*,int);

void spiked_shoes(char*,int);

void main()

{

int procreation_number; /* 生产项目代号1~3 */

int size; /* 尺寸 */

procreation_number=2;

size=8;

switch(procreation_number)

{

case 1: /* 参数行中传入函数slow_run_shoes的地址*/

procreation(size,slow_run_shoes);

break;

case 2: /* 参数行中传入函数leisure_shoes的地址 */

procreation(size,leisure_shoes);

break;

case 3: /* 参数行中传入函数spiked_shoes的地址 */

procreation(size,spiked_shoes);

break;

default:

printf("停止生产!!!\n");

}

getchar();

}

void procreation(int size,void (*run)(char* material,int size))

{

char* material; /* 质料名称 */

int material_number; /* 质料代号1~3 */

material_number=3;

switch(material_number)

{

case 1:

material="布";

break;

case 2:

material="兽皮";

break;

case 3:

material="塑料";

}

(*run)(material,size); /* 调用函数指针 */

}

void slow_run_shoes(char* material,int size)

{

printf("以质料为%s、尺寸为%d来生产慢跑鞋\n",material,size);

}

void leisure_shoes(char* material,int size)

{

printf("以质料为%s、尺寸为%d来生产休闲鞋\n",material,size);

}

void spiked_shoes(char* material,int size)

{

printf("以质料为%s、尺寸为%d来生产钉鞋\n",material,size);

}

程序执行结果:

以质料为塑料、尺寸为8来生产休闲鞋

相关推荐
玖玥拾19 小时前
C/C++ 基础笔记(八)
c语言·c++
apcipot_rain20 小时前
计科八股20260606——二叉树、PCA、图深度学习、进程上下文、C语言预编译、文件读写、单精度浮点数
c语言·数据结构·算法·pca·图神经网络
你怎么知道我是队长20 小时前
CRC校验介绍
c语言
1892280486121 小时前
NV077固态MT29F16T08ESLCHL6-QAES:C
c语言·开发语言·性能优化
是阿建吖!1 天前
【Linux】信号
android·linux·c语言·c++
三品吉他手会点灯1 天前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
wuminyu1 天前
Java锁机制之轻量级锁判断与尝试逻辑源码剖析
java·linux·c语言·jvm·c++
老H科研技术1 天前
第 01 篇:MCP 概念与架构 —— AI 世界的“USB-C“
c语言·人工智能·chatgpt·架构·aigc·agi
社交怪人2 天前
【判断奇偶】信息学奥赛一本通C语言解法(题号1041)
c语言
Jun6262 天前
QT(1)-C/C++库生成和调用
c语言·开发语言·c++·qt