我刚刚在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
出现的方式,因为在循环期间执行的代码周围没有括号。答案 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");