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

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

03.11.2014, 22:50. Показов 6738. Ответов 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,311
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
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru