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 = ...;
...
}
}
我感觉如第二种写砝比较容易读,很容易知道a的作用范围,而读第一种写法时还要考虑一下a的作用范围。所以俺认为第二种写砝比第一种写法好。大家认为这两种写法孰优孰劣呢? |