根据今天的标准,这种代码是否被认为是好的?

时间:2013-10-08 10:26:04

标签: c coding-style

我刚刚在K& R的书中找到了这个代码,我想知道今天的最佳实践是否会被认为是好的:

while ((len = getline(line, MAXLEN)) > 0)
    if (nlines >= maxlines || (p = alloc(len)) == NULL)
        return -1;
    else {
        line[len-1] = '\0'; /* delete newline */
        strcpy(p, line);
        lineptr[nlines++] = p;
    }

具体做法是:

  • else出现的方式,因为在循环期间执行的代码周围没有括号。

1 个答案:

答案 0 :(得分:1)

对我来说,最佳做法是始终在每个if语句的两个分支周围使用括号。

为什么呢?因为它可以防止这个错误:

if (foo()) 
    if (bar()) printf("bar\n");
else
    printf("The else actually belongs to 'if (bar())', but due to the indentation it looks as it was meant to be the else of 'if (foo())'.\n");