C 在一个声明中不声明多个变量是否会使代码更具可读性?

C 在一个声明中不声明多个变量是否会使代码更具可读性?,c,declaration,readability,code-readability,C,Declaration,Readability,Code Readability,当一个人有很多变量时,最好是在一行中声明相同类型的所有变量,还是为每个变量声明写一行?(在代码可读性方面) 比如说 一网打尽: int my_rank, comm_size, processors_used, name_length, *x, *y; double mean_value, variance, var_sum, *var_sums; char string,*tmp,option; 各行各业: int my_rank; i

当一个人有很多变量时,最好是在一行中声明相同类型的所有变量,还是为每个变量声明写一行?(在代码可读性方面)

比如说

一网打尽:

       int my_rank, comm_size, processors_used, name_length, *x, *y;
       double mean_value, variance, var_sum, *var_sums;
       char string,*tmp,option;
各行各业:

    int my_rank;
    int comm_size;
    int processors_used;
    int name_length;
    int *x;
    int *y;
    double mean_value;
    double variance;
    double var_sum;
    double *var_sums;
    char string;
    char *tmp;
    char option;
我更喜欢第一个,而不是第二个,但我的情况是,我只有大约19个整数,我认为无论哪种方式都会使代码看起来难以辨认和难看

实际上,我将逻辑块中的声明和同一声明中的分组变量(如果它们相互关联)分开

int my_rank, comm_size, processors_used, name_length;
int *x, *y, *send_counts, *displacement, num; 
int max, min, loc_max, loc_min, *max_array, *min_array;
int i,option,sum,*sums;
double mean_value, variance, var_sum, *var_sums, *delta_vector, *local_delta;
char proc_name[MPI_MAX_PROCESSOR_NAME];
MPI_Status status;

您认为哪一种代码更具可读性

是否将局部变量的定义分组或将它们每行分开,主要取决于意见。以下是一些一般性意见:

  • 本地编码样式可能会将一种样式强加于另一种样式。与项目其余部分的一致性是有价值的,并且有助于可读性

  • 在同一行用简短注释记录其中一些定义可能很有用,并提示将它们分开。但不要评论显而易见的事情

  • 如果将定义分组到逻辑块中,请不要在同一行上混合指针和变量。这使许多读者感到困惑

  • 将定义移到更接近使用变量的位置也有助于可读性,因为它减少了这些变量的范围,同时也减少了精神空间,这是一种有限的资源


这是基于意见的,但是如果我没有太多的空闲时间,我看到一个关于VAR的问题“全部在一行”,我会跳过它。很容易漏掉一些不好的声明,这表明下面的代码很可能是以“经济、聪明”的方式编写的,也就是“难以调试”。此外,“一行代码”还表示“即使它们的用法令人困惑,值得解释,我个人从不在一行上写指针定义,因为我倾向于忘记
b
in
int*a,b不是指针。否则,我只在一行上写多个声明,如果它们有相同的用途,比如
inti,j用于索引。@cad几乎相当于
typdef
ing指针。这也是为什么我更喜欢
int*a超过
int*a。您应该阅读这本书来了解c标准:-)