gpt4 book ai didi

c - 减少两个相似的函数,避免重复

转载 作者:行者123 更新时间:2023-12-04 10:26:57 24 4
gpt4 key购买 nike

我有一个项目。在那一个中​​有一些非常相似的功能,因为不同之处只是计算方式。一方面我们使用平均计算,另一方面我们使用中位数计算。这些函数使用相同的参数和相同的代码。

这是区别:

find_median(some parameters)
{
/* some code */
best_windows_median(same parameters);
/* some code */
}

find_average(some parameters)
{
/* some code */
best_windows_average(some parameters);
/* some code */
}

2-3个函数也是一样的。如何将 2 个函数重新组合为一个,但保留使用 median 或 average 的选择?

最佳答案

有几种方法可以实现这一点,包括传递一个值来切换使用哪个计算,以及传递一个函数指针(如果感兴趣的话,第二个是依赖倒置的本质)。

所以要么:

find_average(data parameters, avg_type) {
same code
switch (avg_type) {
case AVG_MEAN:
best_windows_mean(data parameters);
break;
case AVG_MEDIAN:
best_windows_median(data parameters);
break;
case AVG_MODE:
...
default:
report unrecognised option;
}
same code;
}

find_average(data parameters, best_windows_function) {
same code;
best_windows_function(data parameters);
same code;
}

使用哪一个取决于您是否熟悉函数指针以及您最喜欢哪一个。

关于c - 减少两个相似的函数,避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com