重构函数(2)变量排查
【摘要】
拆分函数的时候,对于拆出来得到的新函数,
要看里面的所有变量是什么类型的变量,是否有定义。
按照变量所写的位置,分为几种:
普通变量、数组下标变量、小数点或->后面的变量、宏里面的变量,
当然,宏里面的变量也分为普通变量、数组下标变量、小数点或->后面的变量,
对于小数点或->后面的变量可以不...
拆分函数的时候,对于拆出来得到的新函数,
要看里面的所有变量是什么类型的变量,是否有定义。
按照变量所写的位置,分为几种:
普通变量、数组下标变量、小数点或->后面的变量、宏里面的变量,
当然,宏里面的变量也分为普通变量、数组下标变量、小数点或->后面的变量,
对于小数点或->后面的变量可以不用管,对于普通变量、数组下标变量,需要注意是否有定义。
如果是全局变量或宏定义的常量,那就是有定义,如果没有定义,那就有2种处理方式:
要么传参,要么直接在新函数中定义。
传参是为了传值进来或者传值出去,而有的临时变量,既不会传入,也不会传出,就不用传参。
临时变量的生命周期拆分:
有的函数是这么写的:
int x;
x=fun1();
y=f(x);
x=fun2();
z=f(x);
如果要把这个代码拆成2个函数,对于x这个变量,其实是可以拆开的,也就是说,上述代码等价于
int x;
x=fun1();
y=f(x);
int xxx
xxx=fun2();
z=f(xxx);
这样,拆开成2个函数之后,就不用把第一个函数计算出来的x的值传到第二个函数。
总结:
(1)注意读宏
(2)小数点或->后面的变量可以不用管,全局变量或者宏定义的常量也不用管,宏里面的变量和其他变量要么传参,要么直接在新函数中定义。
(3)传参是为了传值进来或者传值出去,而有的临时变量,既不会传入,也不会传出,就不用传参。
(4)形如上述的代码中,临时变量的生命周期可拆分,避免冗余的参数传递。
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/106123809
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)