Размещение скобки влияет на удобочитаемость? [дубликат]

Для будущих ленивых гуглеров - Небольшой фрагмент:

Включить это:

!include x64.nsh

И использовать это, если:

${If} ${RunningX64}
    # 64 bit code
${Else}
    # 32 bit code
${EndIf}       
5
задан Community 23 May 2017 в 11:54
поделиться

7 ответов

Я думаю, что это полностью субъективно, однако я думаю, что важно установить стандарты кода для вашей команды и заставить всех использовать один и тот же стиль. При этом мне нравится второй (и заставил свою команду использовать его), потому что его легче читать, когда это не ваш код.

6
ответ дан 18 December 2019 в 06:23
поделиться

Раньше мы использовали первый стиль (стиль K&R), потому что экраны были меньше, и код часто печатался на бумаге, называемой бумагой.

В наши дни у нас большие screen и второй метод (стиль ANSI) упрощают проверку совпадения скобок.

См. ЗДЕСЬ и ЗДЕСЬ для получения дополнительной информации.

5
ответ дан 18 December 2019 в 06:23
поделиться

Первый меньше по количеству строк (возможно, именно поэтому в разработке -Java- книгах используется этот синтаксис)

Второй: ИМХО легче читать, как всегда имеют две выровненные скобки.

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

3
ответ дан 18 December 2019 в 06:23
поделиться

Руководство по стилю Google C ++ предлагает

Тип возврата в той же строке, что и имя функции, параметры в той же строке, если они подходят.

Функции выглядят следующим образом:

 ReturnType ClassName :: FunctionName (Type par_name1, Type par_name2) {
 Сделай что-нибудь();
 ...
}

Рекомендации по стилю кодирования WebKit предлагают

Определения функций: поместите каждую фигурную скобку в отдельную строку.

Справа:

 int main ()
{
 ...
}

Неверно:

 int main () {
 ...
}

Они предлагают фигурные скобки на одной строке для всего остального.


Стандарты кодирования GNU предлагают

Важно поместить открывающую скобку, которая запускает тело функции C, в столбце один, чтобы они начали defun. Некоторые инструменты ищут в первом столбце открытые фигурные скобки, чтобы найти начало функций C. Эти инструменты не будут работать с кодом, не отформатированным таким образом.

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

Также важно, чтобы определения функций начинали имя функции в первом столбце. Это помогает людям искать определения функций, а также может помочь некоторым инструментам их распознать. concat (символ * s1, символ * s2) { ... }

или, если вы хотите использовать традиционный синтаксис C, отформатируйте определение следующим образом:

 static char *
concat (s1, s2) / * Здесь имя начинается с первого столбца * /
 char * s1, * s2;
{/ * Открывающая фигурная скобка в первом столбце здесь * /
 ...
}

Как видите, у каждого свое мнение. Лично я предпочитаю фигурные скобки в стиле Perl-on-same-line-except-for- else , но пока все, кто работает над кодом, могут сотрудничать, это действительно не имеет значения.

7
ответ дан 18 December 2019 в 06:23
поделиться

Я использую оператор if как аргумент в пользу этой очень эмоциональной темы.

if (cond) {
   //code
}

просто спрашивая, как выглядит оператор else? Логическое продолжение вышесказанного: -

if (cond) {
   //code   
} else {
   //more code
}

Это можно читать? Я так не думаю, и это тоже просто уродливо.

Больше строк! = Менее читабельно. Поэтому я бы выбрал второй вариант.

2
ответ дан 18 December 2019 в 06:23
поделиться

С первым вариантом количество строк кода будет значительно меньше. :)

1
ответ дан 18 December 2019 в 06:23
поделиться

Лично я считаю, что второй вариант более читабелен (выровненные фигурные скобки).

Команде всегда проще всего использовать значения по умолчанию, и, поскольку Visual Studio и я согласны с этим, это мой аргумент. ; -)

1
ответ дан 18 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: