#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 строку кода?» — Одиночный оператор underif
не требует фигурных скобок. Это явно описано в документе, который вы показываете (if (condition)
action();
).
Ответ №1:
Как упоминал @Tsyvarev, для вложенных if-операторов не существует конкретных соглашений.
Что касается однострочных операторов if — вам не нужно. Однако имейте в виду, что одной из основных целей соглашений является поддержание удобочитаемости кода. В конце концов, ваш код должен быть читабельным. Если фигурные скобки делают ваш код более читаемым, даже если это всего одна строка — тогда используйте фигурные скобки.