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来生产休闲鞋

相关推荐
老当益壮梁奶奶8 分钟前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
「QT(C++)开发工程师」20 分钟前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt
不正经学生40 分钟前
C语言动态内存管理(上):堆上的自由与责任
c语言·开发语言·c++·算法·面试
布莱克6053 小时前
队列详解:定义、分类、应用场景及与栈的区别(C/C++ 代码讲解)
c语言·开发语言·c++·队列
CPETW3 小时前
USB TO I2C_(Excel)_Scan ---- 1000KHz总线速率测试_A
c语言·开发语言·网络·科技·单片机
Navigator_Z3 小时前
LeetCode //C - 1221. Split a String in Balanced Strings
c语言·算法·leetcode
en.en..4 小时前
C语言 static函数与头文件封装规范
java·c语言·前端
布莱克6055 小时前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
wuyk5555 小时前
从零吃透 Modbus 通信|第 6 章:线圈功能码 05/0F 实现 & Modbus‑TCP 基础入门
c语言·网络·网络协议·tcp/ip
zbyyd6 小时前
Linux 进程间通信(IPC):信号、消息队列、共享内存与信号量详解
linux·运维·c语言