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

Вперед Назад Содержание

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. Ноль без приведения вполне хорош как константа для нулевого указателя.


Вперед Назад Содержание