Wiki

Стандарт кодирования GNU - 10. Ясность использования конструкция C.

Следует явно описывать все аргументы функций. Не надо опускать их, поскольку их тип - int.

Описания внешних функций и функций, которые появляются позднее в исходном файле должны все быть в одном месте в начале файла (где-нибудь до первого описания функции в этом файле), или должны размещаться в заголовочном файле. Не помещайте extern-описания внутри функций.

Зачастую, одна и та же локальная переменная (с именем вроде tem) используется для разных целей внутри одной функции. Лучше, однако, описывать отдельную локальную переменную для каждого конкретного использования и давать ей имя в соответствии с ее смыслом. Это не только увеличивает понимаемость программы, но так же улучшает оптимизации, выполняемые хорошими компиляторами. Вы можете также переместить описание каждой локальной переменной в наименьший блок, включающий все ее использования. Это также делает программу яснее.

Не следует использовать имена локальных переменных или параметров, которые затеняют (перекрывают) описания глобальных переменных.

Не нужно описывать несколько переменных в одном описании, разбитом на несколько строк. Например, вместо:

   int foo,   
        bar;   

надо писать или:
   int foo, bar;
или:
   int foo;   
   int bar;   

(Если это описания глобальных переменных, каждое из них должно иметь предшествующий комментарий.)
Когда Вы пишите конструкцию if-else, которая вложена в другую конструкцию if, всегда следует помещать скобки вокруг if-else. Никогда не пишите так:
   if (foo)   
      if (bar)   
        win ();   
      else   
        lose ();   

Вместо этого надо писать так:
   if (foo)   
   {   
       if (bar)   
          win ();   
       else   
          lose ();   
   }   

Если Вы вкладываете конструкцию if внутрь конструкции else, то или пишите else if на одной строке, как здесь:
   if (foo)   
     ...   
   else if (bar)   
     ...   

с then-частью, имеющей такой же отступ, как и у предшествующей then-части, или пишите вложенный if внутри фигурных скобок, как здесь:
   if (foo)   
       ...   
   else   
   {   
       if (bar)   
       ...   
   }   

Не описывайте тек структуры и переменную или typedef в одном описании. Вместо этого следует описывать тег структуры отдельно и затем использовать его для описания переменной или имени типа.
Старайтесь избегать присваиваний внутри условия в конструкции if. Например, не следует писать так:
  if ((foo = (char *) malloc (sizeof *foo)) == 0)   
     fatal ("virtual memory exhausted");   

Вместо этого надо писать так:
   foo = (char *) malloc (sizeof *foo);   
     if (foo == 0)   
       fatal ("virtual memory exhausted");   

Не стоит уродовать программу для того, чтобы потакать верификатору lint. Не надо вставлять никаких приведений к void. Ноль без приведения вполне хорош как константа для нулевого указателя.