在任何情况下都不要饮用有版权的代码
善意接收别人给您的程序添加的代码,但要检查其合法性,即是否也是GUN的
编写日志文件(Changelog),这将是您的代码更容易维护。
GUN对C程序风格的要求:
函数的开头的左花括号放到最左边,避免把任何其它的左花括号、左括号或者左方括号放到最左边。
对于函数定义来说,把函数名的起始字符放到最左边也同样重要。
这帮助任何寻找函数定义,并且可能有助于帮助某些工具识别它们。
static char *
concat (s1, s2) /* 名字开始放在第0列 */
char *s1, *s2;
{ /* 函数大括号也放在第0列 */
...
}
static char *
concat (char *s1, char *s2)
{
...
}
•如果参数不能够被美观地放在一行中,按照下面的方式把它们分开:
int
lots_of_args (int an_integer, long a_long, short a_short,
double a_double, float a_float)
•对于函数体,我们希望它按照如下方式排版:
if (x < foo (y, z))
haha = bar[4] + 5;
else
{
while (z)
{
haha += foo (z, z);
z--;
}
return ++x + bar ();
}
•在左括号之前以及逗号之后添加空格将使程序更加容易阅读。尤其是在逗号之后添加空格。
当我们把一个表达式分成多行的时候,在操作符之前而不是之后分割
if (foo_this_is_long && bar > win (x, y, z)
&& remaining_condition)
•尽力避免让两个不同优先级的操作符出现在相同的对齐方式中。
例如,不要象下面那样写:
mode = (inmode[j] == VOIDmode
|| GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
? outmode[j] : inmode[j]);
•应该附加额外的括号以使得文本缩进可以表示出这种嵌套: