打印

模块内部定义仅限此模块使用的局部变量

[复制链接]
1513|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2017-2-24 23:51 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

C语言允许在模块内部定义仅限此模块使用的局部变量,如
void 函数(void){
      ....
      {
          char a;
          ....
      }
      ....
}
但是比较少看到有人这么做,不知是不是习惯的原因。
假如一个函数中有多个部分用到相同类型的局部变量,并且每个部分是按先后顺序相互独立的,如按照一般习惯写为:
void 函数(void){
      char a;
      ...
      
     //部分1
      a = ...;  //初始化a
      {         
          ... = a;  
          a = ...;
          ....
      }
      ....
      //部分n
      a = ...;  //初始化a
      {
          ... = a;
          a = ...;
          ...
      }
}
如果写成如下:
void hanshu(void){
      
     //部分1
      {         
          char a;
         
          ... = a;  
          a = ...;
          ....
      }
      ....
      //部分n
      {
          char a = ...;  //初始化a
         
          ... = a;
          a = ...;
          ...
      }
}
沙发
wangzsa|  楼主 | 2017-2-24 23:55 | 显示全部楼层
我感觉如第二种写砝比较容易读,很容易知道a的作用范围,而读第一种写法时还要考虑一下a的作用范围。所以俺认为第二种写砝比第一种写法好。大家认为这两种写法孰优孰劣呢?

使用特权

评论回复
板凳
wangzsa|  楼主 | 2017-2-25 20:57 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝