- 论坛徽章:
- 0
|
有几个结构,每个结构都对应着几个处理。这些处理,在顺序和结构上,都一样。但是处理的函数,和用到的变量都不一样。有什么办法,能够减少代码量,用一个函数来实现所有这些结构的处理。
比如,下面代码:
- funciton(){
- int type;
- RESULT1 result1;
- RESULT2 result2;
- PAR1 par1;//PAR1 和PAR2是不同的类型
- PAR2 par2;
- switch(type)
- case 0://每个case里面的处理都一样。希望把switch去掉。
- .........
- result1=subfunction1(par1);
- case 2:
- ..........
- result2=subfunction2(par2);
- }
- 是否能够把上面的函数实现为:
- function(void* pFunction,void* par,void* result){
- result=pFunction(par);
- }
- 也就是最后,不需要switch来判断类型了。
- 调用这个函数的时候,通过指针数组。
- 比如
- function(pFuction[i],pPar[i],pResult[i]);
复制代码
这样,只要确定了i之后,就能够用一个代码量很小的函数来实现了。 |
|