Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Расстановка фигурных скобок. / 25 сообщений из 34, страница 1 из 2
11.08.2015, 14:41
    #39027067
.NET
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Надеюсь я не начинаю холивар.)
Какой способ расстановки фигурных скобок ограничивающих блок кода вы считаете предпочтительным.
Стиль Кренигана-Ритчи:
Код: plaintext
1.
2.
3.
4.
5.
foo() {
    
    ........

}  



или стиль Алмена:
Код: plaintext
1.
2.
3.
4.
5.
6.
foo() 
{
    
    ........

}  



Мне больше нравится стиль Алмена, так как он чётче обозначает границы.
Границы блока надо всегда искать в первом столбце текста.
В первом же варианте конец блока виден хорошо, а в поисках начала надо шарить по всему файлу.
Однако, в книге которую я сейчас читаю написано, что стиль Кернигана-Ритчи является единственно верным.
Вот так выделено курсивом и никаких комментариев.
...
Рейтинг: 0 / 0
11.08.2015, 14:57
    #39027086
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
.NETОднако, в книге которую я сейчас читаю написано, что стиль Кернигана-Ритчи является единственно верным.


Естественно, это неправда.
Потому что единственно верным является стиль Алмена .
...
Рейтинг: 0 / 0
11.08.2015, 15:11
    #39027098
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Сравни
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
if(...)
{
  ...
}
else
{
 ...
 while(...)
 {
    ...
 }
}


и
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(...) {
  ...
} else {
 ...
 while(...) {
    ...
 }
}


Лично я предпочитаю видеть больше кода чем скобок, т.е. стиль Кренигана-Ритчи. Экран не резиновый и не стоит занимать место строками с одной скобкой, т.к. в итоге получается что половина строк кода - скобки.
Хотя для функций использую стиль Алмена.
...
Рейтинг: 0 / 0
12.08.2015, 06:16
    #39027532
Герой дня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
новая скобка на новой строке - надо заботиться о тех, кто будет читать код.. а так он проще воспринимается
...
Рейтинг: 0 / 0
12.08.2015, 06:42
    #39027537
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Какую книгу вы читаете ? Что значит единственно верным ? По какому критерию ? Корректность синтаксического или лексического анализа? В таком случае совершенно безразлично где и как вы закрываете и открываете блок инструкций. Читабельность кода ? На вкус и цвет товарищей нет, когда-то удобней так, а когда-то иначе
...
Рейтинг: 0 / 0
12.08.2015, 12:13
    #39027723
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
.NET,
в конечном итоге прав тот кто платит. Т.е. согласно внутренним решениям конторы.
Если идёт речь гипотетически - то если не надо чтоб кто то читал Ваш код - то как угодно. Хоть в прямоугольные блоки код сводите(есть и такие любители). Если нужно снизить затраты на поддержку кода(типа чтоб любая "домохозяйка" поняла) то тогда с новой строчки(имхо конечно-же) глаз воспринимает легче. Но для профи параллельно, т.к. приходится всякое разгребать досконально.
Как писать так и читать.
...
Рейтинг: 0 / 0
12.08.2015, 12:57
    #39027781
YesSql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Dima T
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(...) {
  ...
} else {
 ...
 while(...) {
    ...
 }
}


Лично я предпочитаю видеть больше кода чем скобок, т.е. стиль Кренигана-Ритчи. Экран не резиновый и не стоит занимать место строками с одной скобкой, т.к. в итоге получается что половина строк кода - скобки.
Хотя для функций использую стиль Алмена.
Когда-то давным давно моя первая учительница по программированию говорила "бейте перфокарту до последнего символа". И это был PL/1....... Я так подозреваю партия зеленых началась с нее.
...
Рейтинг: 0 / 0
12.08.2015, 18:38
    #39028119
.NET
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
YesSqlDima T
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(...) {
  ...
} else {
 ...
 while(...) {
    ...
 }
}


Лично я предпочитаю видеть больше кода чем скобок, т.е. стиль Кренигана-Ритчи. Экран не резиновый и не стоит занимать место строками с одной скобкой, т.к. в итоге получается что половина строк кода - скобки.
Хотя для функций использую стиль Алмена.
Когда-то давным давно моя первая учительница по программированию говорила "бейте перфокарту до последнего символа". И это был PL/1....... Я так подозреваю партия зеленых началась с нее.
Да я тоже думаю что смысл этого стиля в экономии символов на переводе строки.
Чтобы программа помещалась на кассету.
...
Рейтинг: 0 / 0
12.08.2015, 18:46
    #39028121
.NET
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
SashaMercuryКакую книгу вы читаете ?
Павловская, Щупак. "Структурное программирование C/C++. Практикум."
Книга 2005 года. Купил давно, хотел программировать на C++.
Потом подсел на .NET, вот теперь пытаюсь вернуться к корням.
Программирование на .NET без знания C/C++, по моему, развивает в человеке веру в чудеса.
А это рано или поздно приводит к проблемам как в работе так и вообще по жизни.
Не на каждую задачу найдётся "заклинание".
...
Рейтинг: 0 / 0
12.08.2015, 18:46
    #39028122
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
.NET,

Вижуал студия форматирует по Альмену (Ctrl-k,Ctrl-d). А это самое главное.
...
Рейтинг: 0 / 0
12.08.2015, 18:57
    #39028128
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Функции и классы:

Код: plaintext
1.
2.
3.
int main() 
{
}



составные операторы:
Код: plaintext
1.
2.
3.
4.
if (x) {
}
else {
}
...
Рейтинг: 0 / 0
12.08.2015, 19:11
    #39028133
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Anatoly Moskovskyсоставные операторы:
Код: plaintext
1.
2.
3.
4.
if (x) {
}
else {
}

А если в if сложное выражение на четыре строки?
...
Рейтинг: 0 / 0
12.08.2015, 19:34
    #39028137
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
miksoftА если в if сложное выражение на четыре строки?
В любом случае
Код: plaintext
1.
) {
...
Рейтинг: 0 / 0
12.08.2015, 20:03
    #39028143
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Anatoly MoskovskymiksoftА если в if сложное выражение на четыре строки?
В любом случае
Код: plaintext
1.
) {

И как тогда отличать, где выражение в if, а где код пошел?
...
Рейтинг: 0 / 0
12.08.2015, 20:48
    #39028163
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
miksoftИ как тогда отличать, где выражение в if, а где код пошел?
Код: plaintext
1.
2.
3.
4.
5.
Да все хорошо видно.
if (x1
    && x2) {
    yy;
}
...
Рейтинг: 0 / 0
12.08.2015, 20:55
    #39028165
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
.NETДа я тоже думаю что смысл этого стиля в экономии символов на переводе строки.
Чтобы программа помещалась на кассету.
При чем тут касета?
Пол экрана кода (а то и больше) на Си зачастую равносильно одной команде высокоуровнего языка. В итоге имеешь 3-4 экрана для реализации элементарной операции. При отладке средний палец опухает от кручения колесика на мышке и в глазах рябить начинает от постоянного листания вверх-вниз.
...
Рейтинг: 0 / 0
14.08.2015, 16:08
    #39029599
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Dima T, лет несколько назад один перец строил ультра-короткий язык. Чем оно закончилось - ХЗ.
Но можешь погуглить здесь. По выделенному. Хехе...
...
Рейтинг: 0 / 0
14.08.2015, 19:29
    #39029755
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
maytonDima T, лет несколько назад один перец строил ультра-короткий язык. Чем оно закончилось - ХЗ.
Но можешь погуглить здесь. По выделенному. Хехе...
Ты про стебелек? Не знаю, не читал. Я про Visual FoxPro, реально ультракороткий язык, пишу на нем 20 лет, все это время MS его хоронит. Думал похоронит насильным вводом x64, но похоже MS осталось жить еще меньше. Похоронят ARM'ы.
...
Рейтинг: 0 / 0
14.08.2015, 19:53
    #39029766
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Dima TЛично я предпочитаю видеть больше кода чем скобок, т.е. стиль Кренигана-Ритчи. Экран не резиновый и не стоит занимать место строками с одной скобкой, т.к. в итоге получается что половина строк кода - скобки.

Обычный стиль:
Код: plaintext
1.
2.
3.
4.
5.
6.
        typedef struct
        {
                float v2;
                float v3;
                float fac;
        } goertzel_state_t;


У меня:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        typedef struct {

         float  v2;
         float  v3;
         float  fac;

        } goertzel_state_t;



Вот еще пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        class __EXPORT Info
        {
        public:
                Format format;
                Encoding encoding;
                unsigned long rate;
                unsigned long bitrate;
                unsigned order;
                unsigned framesize, framecount;
                timeout_t framing;
                char *annotation;

                Info();
                void clear(void);
                void set(void);
                void setFraming(timeout_t frame);
        };



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        class __EXPORT Info {

        public:

         Format         format;
         Encoding       encoding;
         unsigned long  rate;
         unsigned long  bitrate;
         unsigned       order;
         unsigned       framesize, 
                        framecount;
         timeout_t      framing;
         char           *annotation;

         Info();
         void clear( void );
         void set( void );
         void setFraming( timeout_t  frame );

        };
...
Рейтинг: 0 / 0
14.08.2015, 20:06
    #39029772
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Так недалеко и в Python скатиться. :)
...
Рейтинг: 0 / 0
14.08.2015, 20:08
    #39029775
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Владимир2012У меня:
В *.h все замечательно, ты свои *.cpp покажи
...
Рейтинг: 0 / 0
14.08.2015, 20:08
    #39029776
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Dima TЯ про Visual FoxPro, реально ультракороткий язык, пишу на нем 20 лет, все это время MS его хоронит.
99% если не больше задач типа "финансовых", "бухучет" ... с использованием Visual FoxPro делаются
легко, быстро, просто, ... /если руки не кривые/.
Хотя C# в какой-то мере и позиционировался /при сравнении с Visual Foxpro/ как язык, который воспринял
все лучшее и дополнил многое недостающее, все же на мой взгляд для класса задач перечисленных выше без
этого "лучшего" запросто можно обойтись.
И код без всего этого "лучшего" пишется быстрее и даже осмелюсь сказать "много чище".
...
Рейтинг: 0 / 0
14.08.2015, 20:13
    #39029778
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Владимир2012 99% если не больше задач типа "финансовых", "бухучет" ... с использованием Visual FoxPro делаются
легко, быстро, просто, ... /если руки не кривые/.
Хотя C# в какой-то мере и позиционировался /при сравнении с Visual Foxpro/ как язык, который воспринял
все лучшее и дополнил многое недостающее,

Как можно их сравнивать ? Fox -- 4GL, С# -- 3GL. Естественно, Fox мощнее гораздо.
...
Рейтинг: 0 / 0
14.08.2015, 20:15
    #39029779
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
MasterZivFox мощнее гораздо.
в киловаттах или попугаях?
...
Рейтинг: 0 / 0
14.08.2015, 20:18
    #39029780
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расстановка фигурных скобок.
Dima TВ *.h все замечательно, ты свои *.cpp покажи
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
// --- Если имя stream не задано
//
 if  ( SysStringLen( NameStream ) == 0 ) {

  m_CFile.Attach( NameFile );

  bRet = ( m_CFile.m_Ok == TRUE ? 1 : 0 );

  if  ( m_CFile.m_Ok == TRUE )  {

   hr              = S_OK;
   ResValue.dblVal = 1;
   *bResult        = ResValue;

  } else {
   hr              = S_FALSE;
   ResValue.dblVal = 0;
   *bResult        = ResValue;
  }

  return  hr;

 }                                                         // if  ( SysStringLen( NameStream ) == 0 ) {
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Расстановка фигурных скобок. / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]