Стандарты кодирования ядра Linux / стиль для вложенных операторов if

#linux-kernel

#linux-ядро

Вопрос:

Я просматривал эту ссылку для уточнения стиля кодирования ядра Linux (https://www.kernel.org/doc/html/v4.15/process/coding-style.html#placing-braces-and-spaces )

Однако я не вижу никаких объяснений того, как форматировать вложенные if-операторы. Вот фрагмент кода, который я ставлю под сомнение:

 if (cond1) {
        if (cond2) {
                1 line of code...
        }
 } else {
        1 line of code again...
 }
  

Нужны ли вложенному оператору if фигурные скобки, даже если в нем всего 1 строка кода? Я знаю, что оператор else нуждается в фигурных скобках, поскольку именно это указано в документах. Я пытаюсь избежать любых проблем со стилем, которые приводят к отклонению моего коммита. Спасибо.

Комментарии:

1. «Я не вижу никаких объяснений того, как форматировать вложенные if-операторы». — Во вложенных операторах нет ничего конкретного if , их форматирование соответствует тем же правилам, что и внешние if операторы. «Нужны ли вложенному оператору if фигурные скобки, даже если он содержит только 1 строку кода?» — Одиночный оператор under if не требует фигурных скобок. Это явно описано в документе, который вы показываете ( if (condition) action(); ).

Ответ №1:

Как упоминал @Tsyvarev, для вложенных if-операторов не существует конкретных соглашений.

Что касается однострочных операторов if — вам не нужно. Однако имейте в виду, что одной из основных целей соглашений является поддержание удобочитаемости кода. В конце концов, ваш код должен быть читабельным. Если фигурные скобки делают ваш код более читаемым, даже если это всего одна строка — тогда используйте фигурные скобки.