2-5 增加代码可读性:符号重命名

在写程序的时候,经常会遇到这样的情况:程序已经写了一部分了,这时候发现之前对某个变量或者函数的命名不太准确,想修改,但是因为很多地方已经用到了它,需要一起都改了,太麻烦,于是就随它去了。这是导致代码可读性差的常见原因之一。

符号重命名功能可以帮助我们快速的修改一个程序中的变量或者函数名。

考虑下面这个程序

#include <stdio.h>
#include <string.h>
 
typedef struct {
    int id;
    char name[20]; 
} Student;

/**/

void set_name(Student s, char * name){
    strcpy(s.name,name);
}
/* */ 
 
int main() {
    Student s1,s2;
    s1.id=100;
    set_name(s1,"张三");
    s2.id=101;
    set_name(s2,"李四")
    printf("%d %s\n",s1.id,s1.name);
    printf("%d %s\n",s2.id,s2.name);
    return 0;
}

假如说我们现在想要将Student结构的name字段改为mingzi。那么可以将光标移动到代码中这个字段出现的地方,比如main函数中s1.name的name上,然后选择“重构”菜单中的“标识符改名”,在对话框中输入新的名称mingzi,然后回车,程序就会变成这样:

#include <stdio.h>
#include <string.h>
 
typedef struct {
    int id;
    char mingzi[20]; 
} Student;

/**/

void set_name(Student s, char * name){
    strcpy(s.mingzi,name);
}
/* */ 
 
int main() {
    Student s1,s2;
    s1.id=100;
    set_name(s1,"张三");
    s2.id=101;
    set_name(s2,"李四")
    printf("%d %s\n",s1.id,s1.mingzi);
    printf("%d %s\n",s2.id,s2.mingzi);
    return 0;
}

所有Student结构的name字段都被改成了mingzi,而set_name的参数name依然保持未变。

也可以看这个视频演示