5、函数
  函数的代码程度不应该超过两屏,局部变量不应该超过10个。一个很大的函数尽量分成一些更短小的函数的组合,每个函数应该功能单一并且实现。如果担心函数调用带来开销,可以把小函数声明为inline。
  如果函数的名称是一种动作或者命令式的语句,应该以错误代码的形式返回(一般0表示成功,-Exxx形式的负数表示错误),如:do_something()
  如果函数的名称是判断语句,则返回值应该类似于布尔值(1表示成功,0表示失败),如:something_is_exist()
  6、宏
  多行的宏定义要用"do...while"来封装,如:
  #define func(a,b,c)
  do {
  if (a > b)
  do_something(c);
  }while(0)
  7、注释
  注释应该描述的是代码要做什么和为什么要这么做,而不应该描述具体通过什么方式来实现。如何实现应该通过代码本身来展现。不要把作者,日期等一些没有意义的内容写在注释里面,这些信息应该集中写在文件开头的地方。在Linux中采用C89的注释风格“ /* ... */ ”,不采用C99的“ // .... ”
  /*
  * get_foo() - return the current value of foo
  * We need this to calculate the bar ratio. This can sleep,
  * so do not call while holding a lock
  */
  int get_foo(){
  ...
  return foo;
  }
  只有在特殊情况下才会在函数里面注释。比如声明一个bug或者某个重要的假设。在注释里面,重要信息以“XXXX:”开头。