Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Какой стиль предпочитаете?
Олмана 61 54.95%
Кернигана и Ричи 41 36.94%
Уайтсмита 6 5.41%
GNU 14 12.61%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 111. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.93/133: Рейтинг темы: голосов - 133, средняя оценка - 4.93
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446

Стили оформления кода C/C++

11.06.2009, 17:59. Показов 26823. Ответов 70
Метки нет (Все метки)

Очень стало любопытно... Какой стиль оформления кода предпочитают программисты.
Лично я придерживаюсь 4-х пробельные (или 1 табулированный) стиль Олмана.

Стиль Олмана

Стиль Олмана
C++
1
2
3
4
if (<cond>)
{
········<body>
}

Стиль Кернигана и Ричи

Стиль Кернигана и Ричи
C++
1
2
3
if (<cond>) {
········<body>
}

Стиль Уайтсмита

Стиль Уайтсмита
C++
1
2
3
4
if (<cond>)
········{
········<body>
········}

Стиль GNU

Стиль GNU
C++
1
2
3
4
5
6
7
if (<cond>)
··{
····<body>
··}
 
if (<cond>)
··<body>
4
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2009, 17:59
Ответы с готовыми решениями:

C и C++ стили оформления кода
уже давно как существует стандарт C++ 11, и вроде бы все хорошо, но до сих пор почему-то уроки по C++ в Вузах начинаются с...

Стили оформления
Необходимо написать программу которая меняет стили панели задач (возможно я не правильно это называю). Облазил множество ссылок интернета и...

Стандарты оформления кода
Здравствуйте. Где можно доходчиво прочесть по стандартам оформления кода? Желательно на русском. Ибо часто вижу, допустим, такое: ...

70
Cyber-Tracing
 Аватар для SkyWalker
346 / 71 / 3
Регистрация: 27.04.2009
Сообщений: 554
12.06.2009, 19:14
Стиль Олмана рулит!
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
12.06.2009, 19:50
1. Именование переменных.
Строчными буквами, разделяя части символом нижнего подчеркивания, каждая часть со строчной буквы:
C++
1
arr_size, sorted_table, file_name, p_text
2. Именование констант (через const)
Аналогично именованию переменных, но каждая часть с прописной буквы:
C++
1
Max_Path, Min_Table_Size
3. Именование макросов и подстановок.
Прописными буквами, разделяя части символом нижнего подчеркивания:
C++
1
MIN(x, y), DBG_NEW
4. Именование перечислений.
Сначала префикс строчными буквами, затем каждая часть с прописной буквы:
C++
1
enum feFileError {feOK, feOpenError, feWriteError, feReadError};
5. Именование функций.
С прописной буквы, каждая часть также с прописной буквы:
C++
1
2
feFileError LoadText(const char* file_name, Text* p_text);
void ShowErrorMessage(feFileError file_error);
6. Именование классов.
Аналогично именованию функций.
C++
1
Text, RBTree, QueryTransaction
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
12.06.2009, 22:01
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
забрали в армию... так вы знаете.. он очень даже поумнел!
Цитата Сообщение от ISergey Посмотреть сообщение
Не по теме:
Monte-Cristo, боится второй раз попасть
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
5. Именование функций.
С прописной буквы, каждая часть также с прописной буквы:

feFileError LoadText(const char* name_name, Text* p_
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
кто пишет в стиле а-ля "мне по фиг что ЭТО кто-то будет читать
);
C++
1
while(true) doubleАРМИЯ();
Цитата Сообщение от inter Посмотреть сообщение
Чем больше в армии дубов, тем крепче наша оборона
0
12.06.2009, 22:17

Не по теме:

mirso, Ничего не понял, что ты хотел сказать...

0
 Аватар для exe-dealer
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
14.06.2009, 10:24
не пойму куда лучше лепить * в объявлении указателя - к имени типа или имени переменной. По идее нужно к имени типа
int* pa = &a;
но почему тогда при объявлении
int* pa, *pb;
эту звезду нужно таскать с каждым именем переменной?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 12:01
Цитата Сообщение от exe-dealer Посмотреть сообщение
не пойму куда лучше лепить * в объявлении указателя - к имени типа или имени переменной. По идее нужно к имени типа
int* pa = &a;
но почему тогда при объявлении
int* pa, *pb;
эту звезду нужно таскать с каждым именем переменной?
Компилятору абсолютно не важно где стоит *.
Ну а если исходить из правила, что ВСЕ указатели должны быть проинициализированы?
C++
1
2
int* pa = NULL;
int* pb = NULL;
Да и для удобства читающего и не только, лучше объявлять переменные и константы максимально близко к месту первого использования.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
18.08.2015, 17:03
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Лично я придерживаюсь 4-х пробельные (или 1 табулированный) стиль Олмана.
Аналогично.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
18.08.2015, 17:13
Не являюсь приверженцем какого-либо стиля вообще.
Ну разве что предпочитаю 4 пробела для отступов и не использую табы.
Скобки, звездочки, префиксы и т.п. ставлю то так, то эдак, смотрю
чтобы визуально воспринималось понятно и эстетично.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.08.2015, 09:56
Цитата Сообщение от Убежденный Посмотреть сообщение
Не являюсь приверженцем какого-либо стиля вообще.
Ну разве что предпочитаю 4 пробела для отступов и не использую табы.
Скобки, звездочки, префиксы и т.п. ставлю то так, то эдак, смотрю
чтобы визуально воспринималось понятно и эстетично.
Аналогично поступаю, помечаю код таким образом, чтобы его можно было найти быстро, ну и конечно же эстетика кода, все должно смотреться очень аккуратно
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 12:34
я за питоно-стиль.
писать без этих мерзких скобочек.

Добавлено через 2 минуты
Цитата Сообщение от exe-dealer Посмотреть сообщение
int* pa, *pb;
эту звезду нужно таскать с каждым именем переменной?
потому что это - говнокод.
наследие сишного раздолбайства.

а не пишите так, и не будет у вас проблем.

а звезда является частью типа.
и должна быть с типом.
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
19.08.2015, 22:04
Цитата Сообщение от exe-dealer Посмотреть сообщение
но почему тогда при объявлении
int* pa, *pb;
эту звезду нужно таскать с каждым именем переменной?
Потому что *pa и *pb имеют тип int.
За что мне нравится Си - за то, что его создавали люди не с плоским мышлением, для которых единообразие - превыше всего.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 22:32
Цитата Сообщение от gng Посмотреть сообщение
Потому что *pa и *pb имеют тип int.
ложь.

1.
при объявлении указателей, мы их объявляем,
а не выполняем операцию разыменовывания.

звездочка - часть типа, а не имени.


2.
даже если рассуждать по вашему, то все равно получается лажа.
потому что результат разыменовывания указателя есть ссылка (int&),
а не тип-значение (int).

на самом деле данный синтаксис - легаси с языком си.
от которого с++ унаследовал львиную долю своего раздолбайства.

Добавлено через 3 минуты
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Именование переменных.
Строчными буквами,
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
arr_size, sorted_table, file_name, p_text
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
feFileError LoadText(const char* file_name, Text* p_text);
C++
1
2
arr_size
feFileError
так у вас нижнее подчеркивание, или верблюд?
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
19.08.2015, 22:34
Цитата Сообщение от hoggy Посмотреть сообщение
ложь.
Вы прочли лишь первую строку моего сообщения.
Цитата Сообщение от hoggy Посмотреть сообщение
на самом деле данный синтаксис - легаси с языком си.
Кто бы спорил...
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 22:38
Цитата Сообщение от gng Посмотреть сообщение
Вы прочли лишь первую строку моего сообщения.
вы ошибаетесь. я прочел оби.
однако в контексте вашего заблуждения,
ратование за раздолбайство сишки выглядит слишком смешным,
что бы всерьёз на такое реагировать.

кстати, сообщение было адресовано не вам.
а тем, кто будет читать вас.
что бы они не попали в заблуждение
благодаря вашему сишному раздолбайству.
0
19.08.2015, 22:54

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
сишному раздолбайству
Вангую, через пару лет вы ещё "чище" будете клеймить "раздолбайство" плюсов в пользу какого-нибудь Питона.

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 23:02
Цитата Сообщение от gng Посмотреть сообщение
Вангую, через пару лет вы ещё "чище" будете клеймить "раздолбайство" плюсов в пользу какого-нибудь Питона.

Не по теме:

врядли через пару лет я узнаю о дизайне плюсов что то такое принципиально новое,
чего не знал ещё вчера.

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

0
20.08.2015, 20:51

Не по теме:

теме 6 лет:facepalm:

0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
20.08.2015, 23:42
Стиль Олмана. Никаких пробелов, исключительно табы. В редакторе стоит длина таба в восемь пробелов. Так для любого кода, не только плюсов.
0
21.08.2015, 05:00

Не по теме:

Kastaneda, хых ))) Я некромант 99 lvl :D

0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
21.08.2015, 07:45
Цитата Сообщение от hoggy Посмотреть сообщение
вы ошибаетесь. я прочел оби.
однако в контексте вашего заблуждения,
ратование за раздолбайство сишки выглядит слишком смешным,
что бы всерьёз на такое реагировать.
кстати, сообщение было адресовано не вам.
а тем, кто будет читать вас.
что бы они не попали в заблуждение
благодаря вашему сишному раздолбайству.

Не по теме:

Прямо какой-то белый стих

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.08.2015, 07:45

Правила оформления кода c++
Приветствую! В общем не редкость встречается, вот такие оформления class SomeClass { private: int _length; ...

Правила оформления кода
Почему рекомендует писать классы и функции следующим образом?(вроде как добавляет лишнюю строку, а удобочитаемости..) class SomeClass :...

Нюансы оформления кода
Mr.X, то что вы делаете с форматированием кода заставляет меня плакать. Зачем вы так со мной?(

Культура оформления кода: что такое enum? Где, когда и для чего уместно применять этот тип?
не понял за что отвечают эти две строчки: enum ChosenOperation { ADD = 1, SHOW, SEARCH, EXIT }; enum SearchingCriteria { NAME =...

Устранить ошибку оформления кода "expected `}'"
Помогите с кодом, выдаёт ошибку expected `}' at end of input, in function `int main(int, char**)': На скоко я понял нехватает фигурных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru