Форум программистов, компьютерный форум, киберфорум
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. Показов 26510. Ответов 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
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.06.2009, 18:02
Посколько часто приходилось работать с gnu'тыми исходниками, предпочатю гнутый стиль. Правда тут несколько неточно написано, потому как они делят на тело из одного statement'а и из нескольких

C
1
2
3
4
5
6
7
if (<cond>)
··{
····<body>
··}
 
if (<cond>)
··<body>
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
11.06.2009, 18:09
В основном Стиль Олмана но часто пролетает и Стиль Кернигана и Ричи..
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
11.06.2009, 18:09
А правильные пацаны юзают astyle (или другую подходящую тулзу) и не парятся.
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
11.06.2009, 18:14  [ТС]
CheshireCat, Гг... ну все равно..когда ты пишешь..ты же пишешь в каком-то стиле.. иначе код будет не понятен...
например мне тяжело работать со стилем Кернигана и Ричи - я теряю фигурные скобки.. поэтому я им пользуюсь очень редко (иногда токо в CSS применяю)
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 18:31
C
1
2
3
4
5
6
7
8
..if(condition){
....body1
..}else{
....if(condition){
......body2
....} 
....body3
..}
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
11.06.2009, 20:25
Обычно использую стиль Олмана, но иногда и GNU промелькивает ))
0
Администратор
 Аватар для mik-a-el
87861 / 53182 / 249
Регистрация: 10.04.2006
Сообщений: 13,765
11.06.2009, 20:27
Олман адназначна
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 20:29
а у меня какой-то гибрид выходит, но меня устраивает, я пока эту тему не подняли, даже не знал, что есть такие стили. да что они вообще существуют, думал каждый ... как он хочет...
0
Администратор
 Аватар для mik-a-el
87861 / 53182 / 249
Регистрация: 10.04.2006
Сообщений: 13,765
11.06.2009, 20:32
VoodooMan, всё украдено до нас))
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
11.06.2009, 20:35
Предпочитаю собственный стиль. Который, как оказалось, является комбинацией стилей Уайтсмита и GNU:
C++
1
2
3
4
5
6
cout << endl<<"";
for (i=0;i<n;i++)
  {
  for (j=0;j<n;j++) printf("%5d",M[i][j]);
  cout << endl;
  }
0
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
11.06.2009, 20:47
СтОит упомянуть еще стиль в одну колонку, среди новичков популярен
C++
1
2
3
4
5
6
if(<cond>)
{
<body>
}
if(<cond>)
<body>
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
11.06.2009, 20:54
Он популярен примерно до первой программы размером в несколько сотен строк кода, которую потом преподу объяснять надо
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 21:02
Gravity, неее, не хватает в твоем стиле экспрессии новичков))) больше хаоса меньше стройности, вот настоящий стиль начинающего
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
11.06.2009, 21:36
Я люблю чтобы в программе как можно меньше строк было, поэтому, если есть возможность, то пишу примерно так:
C++
1
if(<cond>){<body>}
Например, обмен через третью переменную:
C++
1
if (a>b) {c=a; a=b; b=c;}
Получается симпатично. То же самое и если одно действие:
C++
1
if(<cond>) <body>;
А если много писать под if-ом нужно, то тут стиль Ольмана. А вот когда читаю исходник, написанный стилем Кернигана и Ричи, то глаза на лоб лезут, все время путаюсь в скобках.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
11.06.2009, 22:36
C++
1
2
3
4
5
6
7
8
9
if(condition){
..body1
}
else{
..if(condition)
....body2
 
..body3
}
А вообще главное, чтобы стиль везде и всегда был ОДИН.
Стоит расширить тему, ведь стиль это не толь табуляция и расстановка скобок, но еще и именование переменных, констант, макросов, оформление комментариев и т.д. и т.п. Вот тут-то полный разброд...
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
11.06.2009, 22:59
Всё малозначимое или часто встречающееся у меня получает короткие имена.
Переменные цикла - i,j,k
Переменные для временного хранения какого-то значения - tmpx, bufx, где х может или отсутствовать или быть какимсь числом
Переменные, хранящие неизвестное, которое надо найти в задаче/формуле или координаты чегось - x,y,z
Для строковых данных предпочитаю использовать s, d, e.
Указатели - p, pnt
Массивы - ar, arr, a.
Переменные, хранящие количество чего-либо получают имена cnt, n, count, sz (размер), fsz (размер файла), num (номер).
Более важные переменные и менее часто встречающиеся получают более длинные и осмысленные имена, похожие по формату образования на имена функций в Си.
Конечно, могут быть и другие имена, но эти наиболее часто встречаются.
З.Ы. Когда переделываю чейсь код, то оставляю "родные" имена переменных (если они не конфликтуют с моими).
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
11.06.2009, 23:09
Цитата Сообщение от Phantom Посмотреть сообщение
Я люблю чтобы в программе как можно меньше строк было, поэтому, если есть возможность, то пишу примерно так: ....... [skiiiiiiip...... многабукафф....]
"Начинающие программисты думают, что пишут программы для компьютеров. Опытные программисты знают, что пишут программы для людей." (с) не мое, не помню, откуда.....
3
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
11.06.2009, 23:21
Цитата Сообщение от CheshireCat Посмотреть сообщение
"Начинающие программисты думают, что пишут программы для компьютеров. Опытные программисты знают, что пишут программы для людей." (с)
Вот это самое правильное утверждение. С небольшой поправкой: писать программу нужно для компьютера, но но нужно помнить и о людях, которые будут ее читать/разбирать/сопровождать.
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
11.06.2009, 23:29
У меня стиля нет!
Если мне чего непонятно в коде,
выделяю где-как, и меняю.
Где пробел, где коменты.
Цитата Сообщение от Gravity Посмотреть сообщение
СтОит упомянуть еще стиль в одну колонку, среди новичков популярен
Люди явно спешат!
Вдруг серьезная отладка - лопать не перелопатишь!Ошибку не найдешь!
Но на форуме, если хотят, что бы их код был прочитан,
для лучшего восприятия - я считаю - хотя бы закоменть!
Если не хочешь не коменть! Зачем тогда пишешь?!
Цель-то у всех одна - узнать чего не знаешь!
А синтаксический ошибки...
А вопросы про: "Мне бы как то нибудь да как--нибудь ватак нефига нипамятма!!!
памагиче хята бы чег могете,!!!До экзамена 3 сек!ОК!==))"
А где наработки!
И где сам код вообще???
Сразу все бросились отвечать!(Если тема знакома!)
И если есть дешифратор!!!
mik-a-el,
помнится ты обещал выдать всем учебники за 5 класс по русскому!

Monte-Cristo,
А я и не знаю как мой стиль называется,
и почему-то вникать не хочется(пока не хочется).
Как не нада писать!
Дета час назад попросил (в теме про массивы) дабы легче читалось!
Может кто и изменит своё отношение к своему письму!
Цитата Сообщение от mirso Посмотреть сообщение
Уважаемые программисты!
Используйте пожалуйста отступы!
(Дабы читать полегче было!)

#include "conio.h"
#include "iostream.h"
#include <iomanip.h>
#include "math.h"
const int n=25;main(){int arr1[n];float arr2[n];for(int i=0;i<n;i++){arr2[i]
=sqrt(arr1[i]=random(901));cout<<setw(3)<<arr1[i]<<setw(8)<<arr2[i]<<endl;}getch();}
}
и привел код, написанный ранее нормально.
Если бы я такой код увидел,
"пошел бы дальше!"
Цель-то у всех одна - узнать чего не знаешь!
И понять! А там ничего непомятно!
Что я там пойму и узнаю!
//--------------------------------------------------------------------------------------
сегодня я узнал, что есть стили от
Monte-Cristo!
Большое ему за это спасибо!
Когда пригодиться - буду знать где найти.
www.cyberforum.ru
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2009, 23:29
Помогаю со студенческими работами здесь

Правила оформления кода 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**)': На скоко я понял нехватает фигурных...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru