重构函数(2)变量排查

举报
用户已注销 发表于 2021/11/19 05:02:54 2021/11/19
1.2k+ 0 0
【摘要】 拆分函数的时候,对于拆出来得到的新函数, 要看里面的所有变量是什么类型的变量,是否有定义。   按照变量所写的位置,分为几种: 普通变量、数组下标变量、小数点或->后面的变量、宏里面的变量, 当然,宏里面的变量也分为普通变量、数组下标变量、小数点或->后面的变量, 对于小数点或->后面的变量可以不...

拆分函数的时候,对于拆出来得到的新函数,

要看里面的所有变量是什么类型的变量,是否有定义。

按照变量所写的位置,分为几种:

普通变量、数组下标变量、小数点或->后面的变量、宏里面的变量,

当然,宏里面的变量也分为普通变量、数组下标变量、小数点或->后面的变量,

对于小数点或->后面的变量可以不用管,对于普通变量、数组下标变量,需要注意是否有定义。

如果是全局变量或宏定义的常量,那就是有定义,如果没有定义,那就有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

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。