#include <stdio.h>
// 定义圆形绘制函数
void draw_circle() {
printf("绘制圆形\n");
}
// 定义矩形绘制函数
void draw_rectangle() {
printf("绘制矩形\n");
}
// 定义图形类型枚举
typedef enum {
CIRCLE,
RECTANGLE
} ShapeType;
// 定义绘制函数指针类型
typedef void (*DrawFunction)();
// 定义图形结构体
typedef struct {
ShapeType type;
DrawFunction draw;
} Shape;
// 通用的绘制管理函数
void draw_all_shapes(Shape shapes[], int count) {
for (int i = 0; i < count; i++) {
switch (shapes[i].type) {
case CIRCLE:
shapes[i].draw();
break;
case RECTANGLE:
shapes[i].draw();
break;
default:
break;
}
}
}
int main() {
Shape shapes[] = {
{CIRCLE, draw_circle},
{RECTANGLE, draw_rectangle}
};
int count = sizeof(shapes) / sizeof(shapes[0]);
draw_all_shapes(shapes, count);
return 0;
}