Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
Заблокирован

Кто как обзывает переменные / типы в своём коде? (нотация)

03.11.2014, 22:50. Показов 6721. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не ради тролинга, а ради интереса и любопытства.
Столько разных API и фрейворков, у всех свой стиль нотации, подстраиваться под конкретный не вижу смысла (задолбался стиль переделывать свой - WinAPi/MFC/ Qt/ wxWidgets и т.д.)
Вот и хотел полюбопытствовать, кто как называет:
1. Названия классов
2. Переменные классов
3. Функции классов
4. Глобальные переменные
5. Глобальные функции
6. ну и т.д.

Лично я пока что нахожу более удобным что ли:
1. MyClass
2. classVar;
3. Function();
4. MY_STRUCT_NAME
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2014, 22:50
Ответы с готовыми решениями:

Есть ли в матлаб ссылочные типы данных? Как переменные записываются в память?
добрый день. пожалуйста ответьте на вопрос: есть ли в matlab ссылочные типы и значимые (как например в c#, в кт классы - ссылочные,...

Как записать переменные в коде
Здравствуйте. В чем, собственно, проблема : как мне записать в коде, чтобы переменные A, B, C учитывались при вычислении третьей функции...

Как убрать глобальные переменные в коде?
Привет! Пожалуйста, помогите мне с этой задачей. Это работает. Но я хочу, чтобы обойтись без глобальных переменных. #include...

82
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.11.2014, 14:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Tulosba Посмотреть сообщение
Нужно с точки зрения хорошего стиля, но можно с точки зрения правил языка. В данном случае имелась в виду именно вторая версия. Т.к. упомянуты именно различия языков.
Я хотел подчеркнуть первое т.к. второе очевидно.

Цитата Сообщение от Tulosba Посмотреть сообщение
после идентификатора можно подчеркивание, никаких ограничений не накладывается.
Когда то я тоже использовал нижнее подчёркивание в конце для отделения private членов. Но позже понял, что подобные идентификаторы визуально схожи с "братьями по написанию", но без подчёркиваний и ошибка в написании не несёт ошибку компиляции. Замена именования на использование префикса m_ позволило решить данную проблему. Вдобавок, не нужно читать идентификатор до конца, чтобы понять к чему относится переменная. (IMO). Ну и конечно стоит упомянуть о плюшках современных IDE с автодополнением, хоть это и не главное преимущество и мы здесь рассматриваем критические ситуации, когда код приходится читать в каких-нибудь diff тулзах.

Цитата Сообщение от Mr.X Посмотреть сообщение
встречал людей, которые на работе писали программы без пробелов, и их никто не выгонял, что по-моему возмутительно просто.
Чтобы вам было легче - у нас выгнали одного за такое.

Цитата Сообщение от Mr.X Посмотреть сообщение
Есть люди, которые вообще неспособны воспринимать пляску больших и малых букв как набор нескольких слов.
Учитывая популярность обоих подходов, я бы всё-таки скорее предложил людям научиться понимать оба способа, нежели сменил стандарт. Мне кажется, что людей с проблемой чтения camel case меньшинство (сам я таких не встречал), но могу ошибаться. В конце-концов, это же стандарт де-факто в java, а она является самым популярным языком.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
05.11.2014, 16:55
Цитата Сообщение от Mr.X Посмотреть сообщение
Есть люди, которые вообще неспособны воспринимать пляску больших и малых букв как набор нескольких слов. В этом отношении разделение подчеркиваниями более демократично - прочитать-то такое все могут. Ссылаются только на стандарты резервирования, но они здесь не в тему, так как мы подчеркивания внутри имен обсуждаем.
И я из них, трудно читать слитые в единое словосочетания. А подчеркивания у меня не только внутри имен, но и с начала; такие имена я использую для аргументов функций.
C++
void set(float _tx, float _ty, float _tz, float _rx, float _ry, float _rz, float _sx, float _sy, float _sz)
{
  tx = _tx;
  ty = _ty;
  tz = _tz;
  rx = _rx;
  ry = _ry;
  rz = _rz;
  sx = _sx;
  sy = _sy;
  sz = _sz;
}
Добавлено через 2 минуты
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
Лично я пока что нахожу более удобным что ли:
1. MyClass
2. classVar;
3. Function();
4. MY_STRUCT_NAME
А зачем имя структуры большими буквами, а имя класса маленькими? Структура и класс ведь одно и тоже.
0
05.11.2014, 16:56

Не по теме:

-THE_MASTER666-, ну и кашу ты заварил!
Отписываюсь!
Всем - удачи!

0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
05.11.2014, 16:56
Цитата Сообщение от programina Посмотреть сообщение
А подчеркивания у меня не только внутри имен, но и с начала; такие имена я использую для аргументов функций.
См цитату из стандарта в посте Кто как обзывает переменные / типы в своём коде? (нотация)
0
Заблокирован
05.11.2014, 18:24  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
А зачем имя структуры большими буквами, а имя класса маленькими? Структура и класс ведь одно и тоже.
Ну это не одно и то же А почему структуры большими, ну... как бы это сказать, я обычно структурой обозначаю какой - то базовый элемент чего нибуть...Да хрен его знает, так как бы выделаешь структуры от всего остального... Вот класс - более сложная штуковина с наследованиями всякими и тд, по этому я его пишу более сложно - с заглавной буквы, а структура - более простой элемент, но всё же какой - то монолитный блок типа дефайна, по этому ёё за обозначаю заглывными буквами Привычка просто...Писать всё олд стайловское, аля дефайны, юнионы и структуры большими буквами. Хотя не...наверное когда много лет назад я игрался с DirectX 7.0, там было популярно:
C++
1
2
#define SAFE_RELEASE(p) { if ( (p) ) { (p)->Release(); (p) = 0; } }
#define SAFE_DELETE(a) if( (a) != NULL ) delete (a); (a) = NULL;
В общем с детства привычка и пошла
Цитата Сообщение от Байт Посмотреть сообщение
-THE_MASTER666-, ну и кашу ты заварил!
Отписываюсь!
Всем - удачи!
ну я ж в первом предложение данного треда написал:
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
Не ради тролинга, а ради интереса и любопытства.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
05.11.2014, 18:34
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
Ну это не одно и то же
Разница между структурами и классами - только в уровне доступа по умолчанию. Прочее "используем struct только для pod-типов" - исключительно стиль и вкусовщина.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
05.11.2014, 22:25

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
См цитату из стандарта
Нет уж, спасибо, я не верующая, заповеди божьи стандарта не соблюдаю. И гореть мне в геенне огненной синим пламенем на веки вечные, аминь. :)


Не могу представить ситуацию, чтобы моя переменная (аргумент функции), начинающаяся с подчеркивания, привела к проблеме.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
06.11.2014, 02:19
Саттер и Александреску - "Стандарты программирования на C++"
3
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
06.11.2014, 04:38
Нет уж, спасибо, я не верующая, заповеди божьи стандарта не соблюдаю. И гореть мне в геенне огненной синим пламенем на веки вечные, аминь.
Вот поэтому одни программисты - художники, а другие - красят заборы.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.11.2014, 05:54
Цитата Сообщение от gromo
Вот поэтому одни программисты - художники, а другие красят заборы.
Смысл не совсем непонятен. Программисты, которые любят читать инструкцию по с++ увлекаются рисованием или наоборот?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
06.11.2014, 06:05
Цитата Сообщение от 0x10 Посмотреть сообщение
См цитату из стандарта в посте Кто как обзывает переменные / типы в своём коде? (нотация)
Ну, если уж на то пошло, в цитате из стандарта сказано, что имена, начинающиеся с '_', за которым следует маленькая буква, зарезервированы только в глобальном пространстве имен. Я лично не одобряю такую практику, но тем не менее именовать параметры функций как '_a' и '_xyz' разрешается.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
06.11.2014, 06:18
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Я лично не одобряю такую практику, но тем не менее именовать параметры функций как '_a' и '_xyz' разрешается.
Формально - да. Для стайлгайда же проще ввести консистентное ограничение, чем расписывать где можно, а где нельзя. Что касается все того же примера выше, лично мне привычнее выделять поля класса, а не локальные переменные, которые и так видны читателю в локальной области.
0
Студент
 Аватар для MickeyBlueEyes
121 / 132 / 39
Регистрация: 07.04.2011
Сообщений: 503
06.11.2014, 23:08
А кто как делает singleton?
Так:
C++
1
class::get_instance()->some_method();
или всё статическим делаете:
C++
1
2
class::some_method1();
class::some_method2();
Во втором случае наверное всё таки удобнее и точно понятно что одиночка, нельзя переменной присвоить и как с обьектом тогда получиться и не понятно одиночка или не. Интересно мнения.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
07.11.2014, 00:37
Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
А кто как делает singleton?
Первый вариант.

Либо в .cpp пишу
объект = class::get_instance(),
а в .h
extern объект

Добавлено через 56 секунд
Цитата Сообщение от programina Посмотреть сообщение
Смысл не совсем непонятен. Программисты, которые любят читать инструкцию по с++ увлекаются рисованием или наоборот?
Смысл в том, что кто-то пишет для себякомпьютера, а кто-то для людей.
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.11.2014, 05:54
Мне гораздо более интересно не по какой нотации их называют, а по смыслу, например, у меня есть функция, которая открывает и закрывает автоматические двери в моей игре, я называю ее avtomaticheskaya_dver(...), это по-моему понятнее, чем англиский или другие варианты.

Не по теме:


Цитата Сообщение от MrGluck
Смысл в том, что кто-то пишет для себякомпьютера, а кто-то для людей.
Вот теперь понятно, однозначно это кто-то из этих:
1) художник, читающий инструкцию, пишет себе.
2) художник, читающий инструкцию, пишет людям.
3) художник, не читающий инструкцию, пишет себе.
4) художник, не читающий инструкцию, пишет людям.
5) красящий забор и читающий инструкцию, пишет себе.
6) красящий забор и читающий инструкцию, пишет людям.
7) красящий забор и не читающий инструкцию, пишет себе.
8) красящий забор и не читающий инструкцию, пишет людям.

0
Заблокирован
07.11.2014, 09:11  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
я называю ее avtomaticheskaya_dver(...)
Эххх, тебе б на 1С программировать
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.11.2014, 10:05
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
Эххх, тебе б на 1С программировать
Причем здесь 1С? Логично ведь писать так как думаешь, а не так, чтобы было понятно каким-то английским ледям и джентельменам.
0
Заблокирован
07.11.2014, 10:36  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
Причем здесь 1С?
Потому что в нём все команды и операторы пишутсья на русском языке киррилицей
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ТекДокум=ДанныеСтроки.Ссылка;
    Если ТекДокум=Неопределено Тогда
        Возврат;
    КонецЕсли;
    ОформлениеСтроки.Ячейки.ЕДРПОУ.Значение = ТекДокум.Контрагент.ЕДРПОУ;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |   ПоступлениеТоваров.Ссылка КАК Ссылка,
    |   ПоступлениеТоваров.СуммаДокумента КАК Сумма
    |ИЗ
    |   Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
    |ГДЕ
    |   ПоступлениеТоваров.Проведен И
    |   ПоступлениеТоваров.ДокументОснование = &ВыбОснование
    |
    |ОБЪЕДИНИТЬ


Цитата Сообщение от programina Посмотреть сообщение
а не так, чтобы было понятно каким-то английским ледям и джентельменам.
Тут дело не в том, кто ходит в юбке
Тут фишка в том, что на мой взгляд хорошо, что мы русские и пишем код на английском, т.к. код мы воспринимаем операторы как некие команды, не вдумываясь особо в их семантику в английском языке. Вот когда ты пишешь код на русском, то он у тебя будет путаться с комментариями просто напросто.
Цитата Сообщение от programina Посмотреть сообщение
я называю ее avtomaticheskaya_dver(...)
А на счёт этого .... Думаю, если ты пойдёшь на какую - то работу программистом, после такой строки тебе сразу укажут на дверь, без обид (и не на автоматическую, а на настоящую )
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.11.2014, 10:37
Всем все понятно?
C++
/*
===============================================================================
 
Автоматическая дверь
 
===============================================================================
*/
void P_Avtomaticheskaya_Dver(OBJECT & obj1, OBJECT & obj2, float zhelaemaya_skorost, float max_rasstoyanie, float Y_ugol)
{
    static  bool    otkryvat            = NET;
    static  bool    otkryta             = NET;
    static  float   skorost             = 0.00;
    static  vec3    ishodnaya_posiciya  = obj1.posiciya;
    float   sin_Y_ugol                  = sin(Y_ugol);
    float   cos_Y_ugol                  = cos(Y_ugol);
 
    float rasstoyanie_do_igroka     = distXZ ( ishodnaya_posiciya, igrok.posiciya );
    float rasstoyanie_ot_ishodnoi   = distXZ ( ishodnaya_posiciya, obj1.posiciya );
 
    // отркывать при условии, что дверь уже закрыта
    if ( rasstoyanie_do_igroka < 1.95 && otkryta == NET ) {
        otkryvat = DA;
    }
    // закрывать при условии, что дверь уже открыта
    else if ( rasstoyanie_do_igroka > 2.05 && otkryta == DA ) {
        otkryvat = NET;
    }
 
    // открывать или закрывать
    if ( otkryvat == DA ) {
        if ( rasstoyanie_ot_ishodnoi < max_rasstoyanie ) {
            skorost = zhelaemaya_skorost;
        }
        else {
            skorost = 0.0;
            otkryta = DA;
        }
    }
    else if ( otkryvat == NET ) {
        if ( rasstoyanie_ot_ishodnoi > 0.0 ) {
            skorost = -zhelaemaya_skorost;
        }
        else {
            skorost = 0.0;
            otkryta = NET;
        }
    }
 
    obj1.posiciya.x -= skorost * cos_Y_ugol;    obj1.posiciya.z += skorost * sin_Y_ugol;
    obj2.posiciya.x += skorost * cos_Y_ugol;    obj2.posiciya.z -= skorost * sin_Y_ugol;
}
1
Заблокирован
07.11.2014, 10:39  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
Всем все понятно?
Нда...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2014, 10:39

Типы и переменные
Добрый вечер, уважаемые форумчане! Подскажите, пожалуйста, как правильно динамически получить тип по имени и создать переменную этого...

Не могу найти баг в своем коде
Не работает скрипт или баг где-то? &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;script&gt; &lt;!-- function...

Enum, переменные перечислений и их типы
Всем привет. Я новичок в C#, как и в программировании в целом. Читаю книгу Бориса Пахомова &quot;С# для начинающих&quot;. Не понял один...

Типы данных. Константы. Переменные
Доброго времени суток! Помогите, пожалуйста, выполнить задание. Задайте в программе 3 константы и присвойте им значения Ваших 1) дня,...

Переменные и базовые типы данных
Сложите два вещественных числа типа float с десятью знаками после десятичной точки. Совсем новичок в изучение Си после Pascal. Не понимаю...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru