返回介绍

分手信自动生成器

发布于 2024-10-10 23:21:30 字数 2609 浏览 0 评论 0 收藏 0

假设你在写一个群发邮件的程序,向不同人发送不同类型的消息,一种创建回复数据的方法是使用结构:

你将发送三种类型的回复,每条回复都要保存回复类型,回复类型用枚举表示。在使用新数据类型

response 时需要根据回复类型分别调用以下三个函数:void dump(response r){ printf("Dear %s,\n", r.name); puts("Unfortunately your last date contacted us to"); puts("say that they will not be seeing you again");}






void second_chance(response r){ printf("Dear %s,\n", r.name); puts("Good news: your last date has asked us to"); puts("arrange another meeting. Please call ASAP.");}






void marriage(response r){ printf("Dear %s,\n", r.name); puts("Congratulations! Your last date has contacted"); puts("us with a proposal of marriage.");}





你已经有了数据结构,生成回复的函数也有了,下面就来看看如何根据 response 数组批量生成回复。

游泳池拼图

从游泳池中取出代码片段,放到下面的空白横线处。你的目标是拼凑出 main() 函数,为 response 数组批量生成邮件。每个片段最多只能使用一次。

游泳池拼图解答

从游泳池中取出代码片段,放到下面的空白横线处。你的目标是拼凑出 main() 函数,为 response 数组批量生成邮件。每个片段最多只能使用一次。

试驾

当运行程序时,程序果然为每个人都生成了相应的回复:

程序正确运行了,但代码中充斥着大量函数调用,每次都需要根据回复类型来调用函数,看起来像这样:switch(r.type) {case DUMP: dump(r); break;case SECOND_CHANCE: second_chance(r); break;default: marriage(r);}









如果增加第四种回复类型,你就不得不修改程序中每一个像这样的地方。很快,就有一大堆代码需要维护,而且这样很容易出错。

好在可以使用一个 C 语言的技巧,这个技巧涉及数组……

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文