реклама на сайте
подробности

 
 
7 страниц V  « < 4 5 6 7 >  
Reply to this topicStart new topic
> О стилистике при оформлении исходников, для начинающих и не только
aaarrr
сообщение Feb 16 2010, 22:08
Сообщение #76


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Сергей Борщ @ Feb 17 2010, 00:58) *
...И минус черный (или более темный), потому что земля, а земля - темная.

А вот мой коллега вяжет узелок на плюсе, но из пары черный-белый выбирает для минуса последний. Так и живем, привыкли smile.gif
Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 17 2010, 06:44
Сообщение #77


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Сергей Борщ @ Feb 16 2010, 23:58) *
Пошел оффтопик... Вот именно - и узелков может быть несколько. А без узелков провод - один. И еще - плюсик - это минусик, к которому добавили палочку. И плюсовой провод - такой же как минусовой, но к которому добавили узелок (это меня еще дед так учил). И 12в больше, чем 5В, поэтому на 12в два узелка, на 5в - один. И минус черный (или более темный), потому что земля, а земля - темная. А если есть в палитре красный - то он плюсовой, потому что красный - цвет горячего. Может и не правильно, но запоминается легко.
Консервативность есть - сопротивляюсь долго. Но если созрел для изменения - то резко и без переходного периода.
+1 к каждому предложению :-) Только меня отец :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Feb 17 2010, 17:44
Сообщение #78


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Как лучше?
if (a > z)
{
}
или
if( a > z )
{
}

то-же и с for, while и т.д.
Лично мне кажется, что второй вариант более удобно читать, особенно когда выражение содержит скобки.
Однако первый вариант похоже рекомендован и встречается чаще.
Вот мне интересно кто как пишет?


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 17 2010, 17:56
Сообщение #79


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



На мой взгляд, в обоих приведенных вариантах присутствуют лишние пробелы. Пишу так:
Код
if(a > z)
{
}

Для for, while etc. аналогично.
Go to the top of the page
 
+Quote Post
Ko4egap
сообщение Feb 18 2010, 10:13
Сообщение #80


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434



Цитата(aaarrr @ Feb 17 2010, 20:56) *
На мой взгляд, в обоих приведенных вариантах присутствуют лишние пробелы.

А на мой взгляд и у вас лишние пробелы. Когда условие чуточку сложнее, трудно читаемо.
Код
if(a<b && c!=d)
{
    error();
    return(0);
}

а for по умолчанию содержит несколько выражений
Код
for(i=0; i<20; i++);
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 20 2010, 12:04
Сообщение #81


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



ИМХО при написании программ на СИ надо пользоваться принципами правил русского или английского языка:
Пробелы между словами, фразами, выражениями, и, конечно, после знаков пунктуации (; . ,).
А вот после открывающейся скобки и перед закрывающей - пробелы не нужны (совсем). <- вот такsmile.gif
Я пишу так:
Код
for (uint8_t i=0; i<20; i++)
{
}

while (x)
{
}

if (a && !b)
{
}
На мой взгляд так приятнее читается.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 20 2010, 15:52
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Ko4egap @ Feb 18 2010, 13:13) *
А на мой взгляд и у вас лишние пробелы. Когда условие чуточку сложнее, трудно читаемо.

Тогда пишите так:
Код
if(a<b && c!=d){error();return(0);}

Идеал smile.gif
Ну а я буду так:
Код
if( ( a < b )&&( c != d ) )
{  error();
   return( 0 );
}

но
Код
for( int i=0; i < x; i++ )
{  call( z, i );
   a = sizeof(x);
......
}

typedef struct {
    union {
        unsigned long long num;
        BYTE dd[8];
        struct {
            ulong nlo;
            ulong nhi;         
        };
    };
    BYTE cnt;    
} Numb_t;


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Feb 21 2010, 00:46
Сообщение #83


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Вот и я почему-то как-то интуитивно захотел отделить кобки if() от выражения. т.е.
Код
if( ( a < b )&&( c != d ) )
на мой взгляд идеально

насчёт
Код
{  call( z, i );
...
}
Думаю кто-то может возразить, но лично я нахожу это очень привлекательным.
Сперва я, для "экономии строк", пользовался стилем К&R для скобок, но потом понял, что это не совсем удобно при отладке.
Хотя красиво и практично в том плане, что нет пустой строки занятой только {
А тут и скобки легко считать и строка не пустует. Возьму на заметку. Мне нравится.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 21 2010, 07:20
Сообщение #84


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(sigmaN @ Feb 21 2010, 02:46) *
А тут и скобки легко считать и строка не пустует. Возьму на заметку. Мне нравится.
Да я вот тоже исключительно на K&R сижу1, по крайней мере там, где от меня не требуется работать в общем стиле.
И тоже на это форматирование, не первый раз уже на этом форуме показанное, с интересом посматриваю. Вроде нравится, а вроде и нет. Надо в каком-то небольшом текущем проекте на него перейти, "покатать на языке, вкус почувствовать".
______
1 Только в if с длинными условиями ставлю { не в конце, да ещё и за ним утаскиваю закрывающую круглую от условия.
Код
    if( abcdef && qwerty
        || zxcvbn && poiuytr
    ) {
        foo();
    }


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 21 2010, 20:37
Сообщение #85


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(ReAl @ Feb 21 2010, 12:20) *
1 Только в if с длинными условиями ставлю { не в конце, да ещё и за ним утаскиваю закрывающую круглую от условия.
Довольно необычно сэкономлена строка. Напротив открывающей круглой стоит открывающая фигурная скобка и аналогично с закрывающими. Я бы таким исходниках огорчился. laughing.gif
Go to the top of the page
 
+Quote Post
Ko4egap
сообщение Feb 24 2010, 08:03
Сообщение #86


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434



zltigo, не надо путать кислое с длинным. Так:
Код
if(a<b && c!=d){error();return(0);}
писать не буду, потому что я пропагандирую читабельность а не сокращение кол-ва строк.

У человеческого глаза довольно узкий угол обзора, в вашем случае, выражение
Код
if( ( a < b )&&( c != d ) )
расползается по всей строке, а сочетание символов ')&&( ' вообще сума сводит, создается ощущение будто бы это логическое "И" должно выполнится самым первым, вы разделели два цельных выражения на части и приклеили по осколку от каждого к третьему. Почему тогда && не выделен пробелами? А обилие абсолютно ненужных там скобок окончательно запутывает.

Вы в школе квадратное уравнение так записывали?
( a * x2 ) + ( b * x ) + c = 0

Или все-таки так?
a*x2 + b*x + c = 0

вот еще пример
a*(b+c)

или
a * ( b + c )

IMHO во втором случае неочевиден порядок действий

Итого: мое мнение: пробелами, стоит разделять отдельные логические выражения, так чтобы порядок действий, в котором они выполняются был как можно более нагляден.

Сообщение отредактировал Ko4egap - Feb 24 2010, 08:24
Go to the top of the page
 
+Quote Post
Ko4egap
сообщение Feb 24 2010, 09:49
Сообщение #87


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434



немного неверно пример привел. Стиль записи кода вроде
Код
if( ( a < b )&&( c != d ) )
соответствует такому стилю записи мат выражений
( a * x2 )+( b * x )+ c = 0
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Feb 24 2010, 19:19
Сообщение #88


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ежу понятно, что операция && не может быть выполнена первой, т.к. для начала у неё должны быть операнды, которые какраз надо вычислить.
И скобки там очень даже помагают сразу это понять, а не лезть в таблицу приоритетов(в голове или по F1 - не важно).


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 24 2010, 20:41
Сообщение #89


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(sigmaN @ Feb 25 2010, 00:19) *
Ежу понятно, что операция && не может быть выполнена первой, т.к. для начала у неё должны быть операнды, которые какраз надо вычислить.
И скобки там очень даже помагают сразу это понять, а не лезть в таблицу приоритетов(в голове или по F1 - не важно).


Ежу - понятно, а вам, чтобы понять - нужны скобки? smile.gif))


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 24 2010, 21:23
Сообщение #90


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AHTOXA @ Feb 24 2010, 23:41) *
Ежу - понятно, а вам, чтобы понять....

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

7 страниц V  « < 4 5 6 7 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01511 секунд с 7
ELECTRONIX ©2004-2016