|
|
  |
О стилистике при оформлении исходников, для начинающих и не только |
|
|
|
Feb 17 2010, 06:44
|

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

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

Группа: Участник
Сообщений: 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++);
|
|
|
|
|
Feb 20 2010, 12:04
|

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

|
ИМХО при написании программ на СИ надо пользоваться принципами правил русского или английского языка: Пробелы между словами, фразами, выражениями, и, конечно, после знаков пунктуации (; . ,). А вот после открывающейся скобки и перед закрывающей - пробелы не нужны (совсем). <- вот так Я пишу так: Код for (uint8_t i=0; i<20; i++) { }
while (x) { }
if (a && !b) { } На мой взгляд так приятнее читается.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 20 2010, 15:52
|

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

|
Цитата(Ko4egap @ Feb 18 2010, 13:13)  А на мой взгляд и у вас лишние пробелы. Когда условие чуточку сложнее, трудно читаемо. Тогда пишите так: Код if(a<b && c!=d){error();return(0);} Идеал  Ну а я буду так: Код 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
|
|
|
|
|
Feb 21 2010, 00:46
|

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...
|
|
|
|
|
Feb 21 2010, 07:20
|

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

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

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

|
zltigo, не надо путать кислое с длинным. Так: Код if(a<b && c!=d){error();return(0);} писать не буду, потому что я пропагандирую читабельность а не сокращение кол-ва строк. У человеческого глаза довольно узкий угол обзора, в вашем случае, выражение Код if( ( a < b )&&( c != d ) ) расползается по всей строке, а сочетание символов ')&&( ' вообще сума сводит, создается ощущение будто бы это логическое "И" должно выполнится самым первым, вы разделели два цельных выражения на части и приклеили по осколку от каждого к третьему. Почему тогда && не выделен пробелами? А обилие абсолютно ненужных там скобок окончательно запутывает. Вы в школе квадратное уравнение так записывали? ( a * x 2 ) + ( b * x ) + c = 0 Или все-таки так? a*x 2 + b*x + c = 0 вот еще пример a*(b+c) или a * ( b + c ) IMHO во втором случае неочевиден порядок действий Итого: мое мнение: пробелами, стоит разделять отдельные логические выражения, так чтобы порядок действий, в котором они выполняются был как можно более нагляден.
Сообщение отредактировал Ko4egap - Feb 24 2010, 08:24
|
|
|
|
|
Feb 24 2010, 09:49
|
Участник

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

|
немного неверно пример привел. Стиль записи кода вроде Код if( ( a < b )&&( c != d ) ) соответствует такому стилю записи мат выражений ( a * x 2 )+( b * x )+ c = 0
|
|
|
|
|
Feb 24 2010, 21:23
|

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

|
Цитата(AHTOXA @ Feb 24 2010, 23:41)  Ежу - понятно, а вам, чтобы понять.... Проблемы не в понимании, проблемы в читаемости. Для читаемости полезна прежде всего легкость узнаваемости знакомых конструкций, слов. Конструктивными элементами формирующими легко узнаваемые и распознаваемые конструкции и являются скобочки, отступы, разделители... буквы, цифры, символы не являются конструктивными элементами - они наполнитель.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|