大多数关于编码风格的文本建议将单行代码的长度限制为最多80个字符。但是,绝大多数通用输出设备完全能够超过这个限制。
为什么这个限制仍然如此严格地提倡?
的我
在某些情况下,由于可读性的提高,我可以看到优势,即返回布尔表达式的值时:
int is_foo(void *x)
{
/* this would look like magic without linebreaks */
return (isint(*x) && \
(*x > 23) && \
(x != 0xDEADBEEF) && \
bar(*x));
}
II。
另一方面,我认为不急需将以下语句分成多行:
snprintf(buf, BUFSIZ, "The big brown fox makes this LOC exceed its %d character limit", 80);
/* is IMO superior to: */
snprintf(buf, BUFSIZ, \
"The big brown fox makes this LOC exceed its %d character limit", \
80);
III。
当然,有些情况下,线路拆分是缺乏明确的代码结构的错误借口:
for (i = 0, *foo = bar, hash_init(); \
is_my_kungfu_already_that_old("bruce") && !list_empty(foo[i]); \
++i, ++j, --k, *p++ = *q--) {
/* whatever */
}