如何根据变量值习惯性地调用C函数?

如何根据变量值习惯性地调用C函数?,第1张

概述假设我有一个数据类型枚举TreeTypes {TallTree,ShortTree,MediumTree}. 我必须根据一种特定的树类型初始化一些数据. 目前我已经写了这段代码: int initialize(enum TreeTypes tree_type) { if (tree_type == TallTree) { init_tall_tree(); } 假设我有一个数据类型枚举TreeTypes {TallTree,ShortTree,MediumTree}.

我必须根据一种特定的树类型初始化一些数据.

目前我已经写了这段代码:

int initialize(enum TreeTypes tree_type) {    if (tree_type == TallTree) {        init_tall_tree();    }    else if (tree_type == ShortTree) {        init_short_tree();    }    else if (tree_type == MediumTree) {        init_medium_tree();    }    return OK;}

但这是某种愚蠢的代码重复.我没有使用任何强大的C功能,如模板.

我怎么能更好地编写这段代码?

谢谢,Boda Cydo.

解决方法 您的代码对于两个或三个值是可以的,但是您是对的,当您拥有数百个时,您需要更具工业实力的东西.两种可能的解决方

>使用类层次结构,而不是枚举 – 然后您可以使用虚函数并让编译器确定要调用的实际函数
>创建枚举地图 – >函数,你在启动时初始化 – 你的函数调用然后变成类似map [enum] – > func()的东西

模板在这里工作得不好,因为你试图在运行时做出决定,而模板在编译时做他们的事情.

总结

以上是内存溢出为你收集整理的如何根据变量值习惯性地调用C函数?全部内容,希望文章能够帮你解决如何根据变量值习惯性地调用C函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存