现在我有两组数据,需要输入两个代码一样的函数,函数内有静态变量,分别存储两组数据的历史值。有什么很好的做法?
我想到
1.为两组数据设两个除名字外一模一样的函数,但感觉代码量成倍增加,而且繁琐
2.传入两个外部定义的全局静态变量,但不能很好的隐藏变量,外部变量一大堆很乱
还有其他方法吗?
现在我有两组数据,需要输入两个代码一样的函数,函数内有静态变量,分别存储两组数据的历史值。有什么很好的做法?
我想到
1.为两组数据设两个除名字外一模一样的函数,但感觉代码量成倍增加,而且繁琐
2.传入两个外部定义的全局静态变量,但不能很好的隐藏变量,外部变量一大堆很乱
还有其他方法吗?
函数内的静态变量设置成一个二维数组,然后根据函数参数决定使用哪一组数据。比如:
void foo(int group) {
static int data[2][DATA_SIZE];
do_something(data[group]);
}
1.2k 阅读
1 回答722 阅读
传递两个外部定义的变量比较好,或者是独立出一个函数
然后使用的时候用简短的函数包装一下,这种增加不了太多代码