我很容易编写这样的代码:
if (*t) while (*++t);
它读取:如果字符串t不以/ 0开头,则移到最后。
注意while循环没有主体,所以分号终止它。
我想知道这样做是否是一种好习惯?为什么不呢?
C是当今使用最古老的流行语言之一。我相信很有可能找到一个或多个既定的风格指南。
我知道Google有一个用于他们的C ++开源项目 - http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
有人能指出我为何或为何不以某种方式编写代码的资源?
答案 0 :(得分:2)
通常,编写单独的代码行是一种好习惯。就像大块代码一样,如果我们在单独的行中编写代码,调试会更加清晰。
答案 1 :(得分:1)
这取决于!谁将不得不阅读和维护此代码?存在编码标准有两个主要原因:
使代码更具可读性和可维护性。当有多个开发人员时,它会使代码更加简洁(更具可读性)。
阻止常见错误。例如,标准可能要求将文字首先置于条件中以阻止作为比较赋值的错误。
这些目标如何适用于您的特定代码?你容易犯错误吗?如果这是Linux内核代码,那么使用这样的代码比使用入门级程序员维护的Web应用程序要容易得多。
它读取:如果字符串t不以/ 0开头,则移到最后。
然后考虑对其进行评论。
答案 2 :(得分:1)
令人惊讶的是 - 随着时间的推移维护代码通常比首先编写代码更昂贵。如果代码更具可读性,维护成本将降至最低。
您的代码有三个受众群体。您应该考虑在格式化时他们的时间有多宝贵:
答案 3 :(得分:1)
不好的做法,因为不容易解析。我会做
while (*t) ++t;
让编译器进行一点点优化。
它的文本翻译比你的文本翻译更短
提前
t
,直到它指向0
答案 4 :(得分:0)
虽然你可以用C语言在一行中编写一些非常聪明的代码,但在可读性和易维护性方面通常不是很好的做法。对于您来说,理解的内容对于维护代码的人来说可能看起来很陌生。
您需要在简洁性和可读性之间取得平衡。为此,通常最好将代码分开,以便每行都做一件事。