Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > C/C++ Style |
Автор: volkrey 5.6.2009, 13:49 |
Друзья, поделитесь своими стилями оформления кода(я понимаю, что есть у каждого на работе свои доки по стилю, но все же интересно) мне интересно как Вы оформляете коменты |
Автор: AZealot 30.6.2009, 12:28 | ||
Как то так. Не профессиональный программист, но, ИМХО, более менее читабельно получается. |
Автор: 1000000dollars 30.6.2009, 12:51 | ||
|
Автор: andrew_121 30.6.2009, 18:08 |
1000000dollars, Кстати не все! Я однажды для удобства, впихнул http запрос в код, чтоб в другое окно не переключаться. Долго я не мог понять почему часть из запроса, включалась в компиляцию. Так и не понял. Пришлось в другом окне читать ![]() MSVS 2008. Вот: http://ipicture.ru/ |
Автор: nerezus 30.6.2009, 21:22 |
K&R |
Автор: GrayCardinal 1.7.2009, 20:14 | ||
Комменты... в коде... хм ![]() |
Автор: MAKCim 2.7.2009, 10:02 |
я, конечно, понимаю, что код по идее сам должен являться комментом, но иногда они (комменты) очень помогают например, ты бы сходу понял сей код? http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/kernel/sched.c#L1304 без маленького коммента сверху |
Автор: Lazin 2.7.2009, 11:35 | ||
![]() BSD имена классов - с большой буквы, cammel case имена переменных, методов, ф-ий - в нижнем регистре имена констант, макросов - в верхнем регистре имена закрытых переменных класса заканчиваются на _ отступ - 4 пробела, ворматирование пробелами
|
Автор: nerezus 2.7.2009, 12:51 |
И почему же ![]() Этот стиль отличается от Java-style только позицией { при классах и методах. Все остальное идентично. |
Автор: andrew_121 2.7.2009, 13:22 |
Вот и мне любопытно. На* пустые строки? Или ЗП от кол-ва строк расчитывается? ![]() |
Автор: Lazin 2.7.2009, 14:17 | ||||
чисто субъективно - лучше читаемость
мне первый вариант как-то глаза мозолит.. ![]() Добавлено через 52 секунды во втором варианте проще находить начало блока, если находишься в его конце, так как скобки имеют один уровень отступа |
Автор: GrayCardinal 2.7.2009, 14:19 | ||||||
Издеваешься ? там пять тыщ строк ![]() Хотя если нормально смотреть, в виме к примеру, то можно разобраться ![]() Добавлено через 2 минуты и 25 секунд Lazin,
![]() 1. K&R is right 2. K&R is right Добавлено через 2 минуты и 59 секунд
![]() |
Автор: nerezus 2.7.2009, 14:26 | ||||
Если ты, то обманул таки )
Его надо разбить на классы по ~200 строк максимум для улучшения читаемости. |
Автор: bsa 2.7.2009, 14:51 | ||||
это кусок исходного текста ядра Linux. Оно написано на Си. В Си нет классов. Если каждый файл там разбивать на мелкие по 200 строк, то файловая система умрет при распаковке. |
Автор: GrayCardinal 2.7.2009, 15:31 |
Lazin, Любой уважающий себя редактор подсвечивает конец блока.... |
Автор: andrew_121 2.7.2009, 18:57 | ||
Установите табуляцию 2-3 и блок будет выделяться.
Это ты плохой ![]() Какие классы?!!! Это С ! |
Автор: Lazin 2.7.2009, 20:37 |
табуляция в 2-3 пробела? что там будет выделяться кроме попытки выделяться? ![]() |
Автор: nerezus 2.7.2009, 20:45 | ||||||||||
"{" == ":" "}" == ""(пусто) т.е. код такой же, как в питоне, если считать скобки пустым местом, а смотреть лишь на строки.
Сравни ) P.S. синтаксис не приводил ) Мне второй вариант больше нравится - он компактнее, а на скобки никогда внимания не обращаю, смотрю лишь на реализуемые отступы. Если же при { будет пустая строка, то кажется, как будто блок закончен, что не так ) |
Автор: andrew_121 2.7.2009, 21:42 |
Прикольная фраза получилась ![]() nerezus, Ты случаем не мусар? Помнишь что Лазин когда-то где-то писал, и за мной следишь? Неа, скорее ты извращенец. ![]() Да еще и зануда. |
Автор: MAKCim 3.7.2009, 09:42 | ||
GrayCardinal, не, я про одну функции calc_delta_mine ;) по сабжу мой выбор linux/Documentation/CodingStyle по работе так
|
Автор: proc_maker 17.8.2010, 14:44 |
embedded С++. Мы руководствуемся MISRA - очень грамотная вещь. Из такого что быстро приходит на ум - запрещено использование табуляторов - пробелы. Комменты в стиле doxygen. Запрещено использование STL и эксепшнов, единый выход из функции, лимит на глубину колво скопов в функции, лимит на длину строки кода, запрет continue, оператора запятая. Нет пробела между именем функции и открывающей скобкой при вызове. Нет пробелов перед запятыми и точками, точками с запятой. Запрещены куски заремаренного кода (золотое с моей точки зрения правило). Один класс - cpp + hpp файл. Я лично предпочитаю стиль if (X) { f(); } else { f(); } Кажется более интуитивно понятным |
Автор: Rad87 18.8.2010, 13:29 |
Ну у вас и жесткий кодестайл..... больше всего вопросов к единому выходу из функции и к continue. Как вы работаете с этими ограничениями? на мой взгляд от этого только усложняется код. |
Автор: A5uKa 18.8.2010, 14:03 | ||||
Странная тема ... ну вот как я оформляю... (у меня очень мало комментариев)
|
Автор: proc_maker 18.8.2010, 14:14 | ||||||
Как ни странно, но я для себя понял что единый выход из функции очень удобен и решает много проблем к примеру благодаря такой вот конструкции:
continue тоже лечится таким же образом:
Как в половой жизни - раз приучил себя не писать как попало - и дальше не имеешь лишней головной боли разного рода. Добавлено через 8 минут и 24 секунды мы пишем так: for (int i = 0; tempTree->Count > i; ++i) А еще у нас скобки обязаны быть во всех if while case etc. if () { a = 0; } |
Автор: A5uKa 18.8.2010, 15:52 | ||
Ну один знакомый у меня скобки ставит вообще просто так, что бы выделить что-то ... Если пишешь код в одиночестве главное там потом не запутаться ... Ну в моём случае это неосуществимо ![]() |
Автор: Dem_max 19.8.2010, 09:14 | ||
а потом ищешь где у тебя функция зависла и за того что стоит бесконечный цикл. А какое отношение к оператору goto ? |
Автор: proc_maker 19.8.2010, 10:15 |
>> а потом ищешь где у тебя функция зависла и за того что стоит бесконечный цикл. А где тут бесконечный цикл кстати? ![]() Запрещено. Я никого не уговариаю на эту конструкцию, поймите. Лично я нашел в ней больше плюсов чем минусов, поэтому стараюсь ее применять везде где возможно, потому что она с моей точки зрения максимально красиво реализует подход: если мы на этой строке значит все проверки прошли успешно. |
Автор: Dem_max 19.8.2010, 11:28 | ||||
а что за конструкция такая с while(0); ? может вместо
проще написать
|
Автор: proc_maker 19.8.2010, 14:37 | ||||
Да, только чтобы юзать break он должен быть внутри цикла - иначе придется использовать return или goto. Вот while(0) и позволяет это делать не прибегая к циклу как к таковому ![]() |
Автор: Dem_max 19.8.2010, 16:45 |
просто жесть |
Автор: djamshud 20.8.2010, 15:42 |
proc_maker, то, что вы написали - не codestyle, а идея ради идеи. Зачем одни лаконичные конструкции заменять другими радутыми, но функционально эквивалентными? http://pastebin.com/NEQJdJ10 (http://pastebin.com/60dcWK7m). |