Какой вариант написания кошернее? Вернее, как принято в "лучших домах"?

Вопрос ламера!
Чаще вижу в приведенных скетчах такую конструкцию:

if (условие) {
Выполняем какое-то действие
}

Однако, мне лично удобнее разбираться, если фигурные скобки стоят не сразу после if (или for, while… ), а ниже. А тело цикла смещается табулятором вправо. Как-то понятнее иерархия.

if (условие) 
{
     Выполняем какое-то действие
}

Понятно, что и то и другое работает одинаково, но как в сообществе принято и считается хорошим тоном? И почему?

1 лайк

Это вопрос из раздела «холиваров».
Кому как удобнее - тот так и пишет.
Мне удобнее первый вариант, так как я сразу вижу к какому именно оператору относится закрывающаяся скобка.
Но это не все варианты, если что…

1 лайк

Оба приняты и оба считаются хорошим тоном. А дальше - вопрос личных предпочтений. Я предпочитаю второй вариант

Там главные способы КиР и GNU. Их всего 6. Вылезу из кровати и с компа напишу.

От себя добавлю, что большинство не знает, как менять эту настройку в ИДЕ. Так что пишем так, как авто формат в нашей ИДЕ настроен. Любой способ хорошо, если везде одинаково.

Я тоже предпочитаю первый вариант, Ставя курсор рядом с закрывающей скобкой, IDE подсказывает открывающую скобку вместе со строкой где она установлена. @BOOM прав.

Я пробовал и так и так. Надоело. Пишу часто просто в длинную строку if(){… … … … … }
… Прокручиваешь и по рисунку видно место где остановиться надо.

Во втором варианте - то же самое. Плюс чисто визуально видно, какая скобка с какой паруется (особенно в vs code при наличии нужных расширений ))

Я же сразу сказал:

Как известно, основной догмат великого пророка Люстрога, изложенный в пятьдесят четвертой главе Блундекраля (являющегося их Алькораном), гласит: «Все истинно верующие да разбивают яйца с того конца, с какого удобнее»

Это если в Вашей компании нет корпоративного стиля. Если есть, то, разумеется, следует придерживаться его.

1 лайк

вот теперь сиди репу чеши, что такое корпоративный стиль…

Обещал ответ ЧатЖПТ про скобки.
Повторю, что обычно пользуются тем, который настроен в ИДЕ по умолчанию. Мало кто знает как изменить его в ИДЕ, от себя скажу, что и в Ардуино ИДЕ 2.х.х и в ВСКоде (они на одном движке) это настраивается.


ОТВЕТ ПРО СКОБКИ

Расстановка фигурных скобок в C и C++ — это вопрос стиля кодирования. Наиболее популярные стили включают:

1. Керниган и Ричи (K&R)

Этот стиль используется в оригинальной книге по C, написанной Брайаном Керниганом и Деннисом Ричи. Он широко распространён и используется во многих проектах.
Пример:

if (x > 0) {
    doSomething();
} else {
    doSomethingElse();
}
  • Открывающая фигурная скобка располагается на той же строке, что и управляющая конструкция.
  • Закрывающая фигурная скобка находится на новой строке и выровнена с управляющей конструкцией.

2. Allman (ANSI)

Этот стиль более визуально структурирован, так как открывающая скобка всегда размещается на новой строке.
Пример:

if (x > 0)
{
    doSomething();
}
else
{
    doSomethingElse();
}
  • Открывающая скобка на новой строке.
  • Код внутри блока чётко виден благодаря увеличенному пространству.

3. GNU

Используется в проектах GNU. Скобки и отступы могут быть непривычны для тех, кто использует K&R или Allman.
Пример:

if (x > 0)
  {
    doSomething();
  }
else
  {
    doSomethingElse();
  }
  • Открывающая скобка на новой строке и выровнена под кодом.
  • Стиль подчёркивает связь скобок с их контекстом.

4. Whitesmiths

Редко используемый стиль, который делает акцент на уровне вложенности, добавляя отступы и для скобок.
Пример:

if (x > 0)
    {
        doSomething();
    }
else
    {
        doSomethingElse();
    }
  • Скобки на отдельной строке и с отступом.
  • Сложнее для восприятия, но подчёркивает вложенность блоков.

5. Horstmann

Этот стиль похож на Allman, но открывающая фигурная скобка расположена на той же строке, что и код внутри блока.
Пример:

if (x > 0)
{   doSomething();
}
else
{   doSomethingElse();
}
  • Подходит для экономии вертикального пространства.

6. Стиль 1TBS (One True Brace Style)

Часто используется в сообществе JavaScript и является модификацией K&R. В нём допускается, чтобы скобки для функций и классов могли быть как в Allman.
Пример:

if (x > 0) {
    doSomething();
} else {
    doSomethingElse();
}

7. Миксованные стили

Иногда программисты адаптируют комбинацию этих стилей, чтобы соблюдать корпоративные стандарты или собственные предпочтения.


Как выбрать стиль?

  • Следуйте стандартам вашей команды или проекта.
  • Если нет строгих правил, используйте K&R — он считается наиболее популярным.
  • Убедитесь, что стиль остаётся консистентным по всему коду.

Инструменты автоматизации

Используйте утилиты вроде clang-format или astyle, чтобы автоматически форматировать код в выбранном стиле.

1 лайк

Вот еще, кому интересно. Оформление FreeRTOS.

использую 4 вариант и очень доволен
2,3,4 варианты немного похожи , хотя есть разница

А в питоне скобок нет.

И? Какие Вы из этого делаете выводы?

В нём, кстати, и указателей нет! И вот спрашивается, кому и нахрена нужен такой язык, в котором ничего нет?

Как говаривала Алиса: «Что толку в книжке, если в ней нет ни картинок, ни разговоров?»

3 лайка

Что же это у вас, чего ни хватишься, ничего нет!

и переменных тоже, так как по существу адрес где это хранится?

и переменные безразмерные (т.е. неограниченного размера), насколько помню.

И в PHP тоже «безмерные», да еще и любой тип принимать могут. Была типа int, можешь ей же строку присвоить и всё будет «проглочено». И массивы, массивы - они там просто поражают воображение. Оно (PHP) меня и развратило, долго я после него к Си и Си++ привыкал…

Выводы такие, что этот язык и на фиг не тарахтел. Хотя ютюб написан на нем.