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

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

03.11.2014, 22:50. Показов 6728. Ответов 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
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
04.11.2014, 22:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
Код полностью вручную писался и никаких подсказок... Вот в таких условиях ...да... это было оправдано.
Это оправдано и сейчас, если функция имеет 3-4 десятка строк, а переменная объявлена где-то в начале функции или того хуже, если переменная глобальная, а прога имеет 300-400 сторок.
Некоторые среды позволяют определять тип переменной, при наведении курсора, но не все. Билдер, например, такого не делает. К тому-же, иногда приходится распечатывать куски кода. В этом случае, такие объявления, оказываются совсем не лишними.
Цитата Сообщение от Tulosba Посмотреть сообщение
Добро пожаловать в 80е от MS. Венгерская нотация в чистом виде.
Программировать я учился именнов в 80-х. Так что не удивительно, что я придерживаюсь стиля, который был в те годы модным.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.11.2014, 23:15
Цитата Сообщение от SmittWesson Посмотреть сообщение
если функция имеет 3-4 десятка строк, а переменная объявлена где-то в начале функции
Плюсы это не си. Тут переменную можно объявлять ближе к точке использования, а не только в начале блока.
Цитата Сообщение от SmittWesson Посмотреть сообщение
ак что не удивительно, что я придерживаюсь стиля, который был в те годы модным.
Ну комп-то не ламповый наверное используете Пора и код под современные реалии подтянуть.
0
Заблокирован
04.11.2014, 23:24  [ТС]
Цитата Сообщение от SmittWesson Посмотреть сообщение
Некоторые среды позволяют определять тип переменной, при наведении курсора, но не все
Так и надо использовать нормальные среды - VisualStudio / QtCreator
Цитата Сообщение от Tulosba Посмотреть сообщение
Ну комп-то не ламповый наверное используете Пора и код под современные реалии подтянуть.
+
0
 Аватар для ReinDeer
19 / 19 / 9
Регистрация: 15.09.2014
Сообщений: 127
04.11.2014, 23:30
NameClassBlaBlaBla
Это же вроде стандарт в журналистике, писать так заголовки. Выделяют так сказать. То что нам и надо.
P.S NaMeClAsS
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.11.2014, 00:27
Цитата Сообщение от Tulosba Посмотреть сообщение
Плюсы это не си. Тут переменную монужно объявлять ближе к точке использования, а не только в начале блока.
/fixed
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
05.11.2014, 00:27
C++
// примерно таким образом
// ненавижу названия из букв разной величины, типа: accelerationPlayerHalfPi
 
struct APPLICATION
{
  int window_width, window_height;
  bool bquit;
 
  void init();
};
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.11.2014, 00:29
Многие (практически стандарт де-факто) только заглавными пишут лишь константы или макросы, так что не советую использовать данный стиль для структур.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
05.11.2014, 00:46
Многие (практически стандарт де-факто) только
заглавными пишут лишь константы или макросы,
так что не советую использовать данный стиль для
структур.
Дело ведь не в том, как кому будет читаться, главное - чтобы автору было удобно. (не исключаю вариант, что можно целенаправленно писать так, чтобы остальные не могли читать).

Добавлено через 5 минут
Насколько я знаю, -THE_MASTER666- боится, что его исходники могут украсть, поэтому ему нужно специально писать нечитаемый код.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.11.2014, 01:35
Цитата Сообщение от ReinDeer Посмотреть сообщение
NameClassBlaBlaBla
Это же вроде стандарт в журналистике, писать так заголовки.
Да ладно! Журналисты еще пробелы между словами ставят. Пиши они так, никто бы вообще ничего не понял из их заголовков. Я вот при полном напряжении фантазии ничего не разбираю в такой какофонии букв. Тогда как символ подчеркивания очень живенько напоминает пробел и позволяет раздробить фразу на слова.
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
05.11.2014, 07:14
Цитата Сообщение от Tulosba Посмотреть сообщение
Ну комп-то не ламповый наверное используете Пора и код под современные реалии подтянуть.
Смешно . У современных компов, архитектура 60-х годов прошлого столетия. В 80-х, 90-х годах, я разработал комп с совершенно иной философией. Публиковал его в Минском журнале "Радиолюбитель - Ваш компьютер" номера 9-1996, 2-1997, 4-1997, 7-1998. Так, что я стоял, как говориться, у истоков тотальной компьютеризации.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
05.11.2014, 08:41
Не сталкивался пока с требованиями прикручивать тип данных к имени переменной. Немножко сталкивался с тем, что нужно было добавлять m_ для внутренних данных и префиксы it, n, df для счётчика, количества и разности количества. Но чтобы тип прикручивать -- не было.

Для C добавление префикса-идентификатора-типа может быть оправдано. Но для С++, на котором программа представляет собой набор типизированных утверждений и "настоящих переменных" там почти нет, добавлять тип уже странно. Во-первых тип может быть сложным, очень сложным. Во-вторых, чуть реже, чем всегда, тип переменной где-то рядом, так как переменная, почти наверняка, это просто контейнер в который сложено промежуточное значение.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.11.2014, 09:15
Вообще-то мне кажется, что основная причина введения в имена заглавных букв была – увеличить количество возможных имен при ограничении их длины в былые времена. Но опыт показал, что их использование каких-либо преимуществ не дает, и им так и не нашли какого-либо путного применения, кроме ерунды и глупостей, самым ярким примером которой та же верблюжья нотация является.
Особенно комично выглядит их применение в Паскале, где стандарт вообще не различает заглавных и строчных, тем не менее люди с увлечением их туда лепят.
0
Заблокирован
05.11.2014, 10:33  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
Насколько я знаю, -THE_MASTER666- боится, что его исходники могут украсть, поэтому ему нужно специально писать нечитаемый код.

Да не...Может и сами исходники продавать придётся

Добавлено через 6 минут
Цитата Сообщение от Mr.X Посмотреть сообщение
самым ярким примером которой та же верблюжья нотация является.
СамаяНормальнаяНотация Я серьёзно.
Или ты и функции обозначаешь как add_some_shit(void* shit);
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
05.11.2014, 11:00
А если серьёзно. Всё зависит от сложности поставленной задачи. Если я перевожу программки с Бейсика на С++, я вообще с префиксацией типов не заморачиваюсь и даже с наименованием переменных. Посто беру те, которые уже применяются и тупо ляпаю алгоритм.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.11.2014, 12:37
Цитата Сообщение от Mr.X Посмотреть сообщение
Вообще-то мне кажется
Кажется. Для сокращения использовали другие технологии - например, выкидывали гласные, писали первый и последний слог и т.д. (см. того же Макконнелла). И если бы всё было так, как вы говорите - camel case никто бы не использовал, а его вполне себе применяют, причём не только в местах, где приходится поддерживать "старый код". Верблюжью нотацию используют потому, что ряду программистов, пишущих программу это удобно. А удобство, как говорится, фактор субъективный, так что я не делал бы таких громогласных заявлений как
Цитата Сообщение от Mr.X Посмотреть сообщение
ерунды и глупостей, самым ярким примером которой та же верблюжья нотация является.
Мне вот, например, удобно различать методы и функции с помощью различий в заглавных буквах, чего подчёркивание дать не может. Я не считаю, что использование такого_стиля_написания хуже или лучше, но в своё время я сделал выбор в пользу camel case.

А использование нижнего подчёркивания перед или после имён переменных/классов не рекомендуется, т.к. это зарезервировано для разработчиков компиляторов (это я для тех, кто предлагает использовать данный подход для внесения сакрального смысла).
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.11.2014, 12:50
Цитата Сообщение от MrGluck Посмотреть сообщение
А использование нижнего подчёркивания перед или после слов не рекомендуется, т.к. это зарезервировано для разработчиков компиляторов.
В начале слов вроде бы да, и там, по-моему, речь идет о двух подчеркиваниях подряд. Так-то и у корифеев встречаются обозначения членов классов подчеркиваниями в конце.
А одиночные подчеркивания в начале имен и в новом стандарте применяются.
0
Заблокирован
05.11.2014, 12:53  [ТС]
Цитата Сообщение от MrGluck Посмотреть сообщение
в своё время я сделал выбор в пользу camel case.
+
Цитата Сообщение от MrGluck Посмотреть сообщение
А использование нижнего подчёркивания перед или после имён переменных/классов не рекомендуется, т.к. это зарезервировано для разработчиков компиляторов
++

Добавлено через 1 минуту
Цитата Сообщение от Mr.X Посмотреть сообщение
речь идет о двух подчеркиваниях подряд
Не обязательно. Обычно одно подчёркивание вначале - это что то специфическое, а два подчёркивания - это что экстра специфическое

Добавлено через 1 минуту
В CUDA вообще сплошь и рядом: __global__ void addKernel(int *c, const int *a, const int *b)
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.11.2014, 13:07
Цитата Сообщение от Mr.X Посмотреть сообщение
А одиночные подчеркивания в начале имен и в новом стандарте применяются.
А как же
_getch()
_swprintf()
_strtoken()
и т.д.?

Нашёл статейку в тему http://habrahabr.ru/post/113044/
Занятно, как парня минусанули за резко негативное отношение к camel case.

Вообще, главное в нотации, это:
1) чтобы она была
2) чтобы она была идентичной в рамках проекта.
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
05.11.2014, 13:16
Цитата Сообщение от MrGluck Посмотреть сообщение
/fixed
Нужно с точки зрения хорошего стиля, но можно с точки зрения правил языка. В данном случае имелась в виду именно вторая версия. Т.к. упомянуты именно различия языков.
Использование camelCase вместо under_score, как минимум, сокращает длину идентификатора.
Цитата Сообщение от MrGluck Посмотреть сообщение
А использование нижнего подчёркивания перед или после слов не рекомендуется, т.к. это зарезервировано для разработчиков компиляторов.
после идентификатора можно подчеркивание, никаких ограничений не накладывается.
А вот в начале ситуация иная:
17.6.4.3.2 Global names [global.names]
1. Certain sets of names and function signatures are always reserved to the implementation:
— Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase
letter (2.12) is reserved to the implementation for any use.
— Each name that begins with an underscore is reserved to the implementation for use as a name in the
global namespace.
2
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.11.2014, 13:45
Цитата Сообщение от MrGluck Посмотреть сообщение
Нашёл статейку в тему http://habrahabr.ru/post/113044/
Для автора этой статейки и некоторых авторов комментариев является откровением, что лексемы нужно пробелами разделять. Я кстати, разделяю их табуляцией, что увеличивает читаемость имен с подчеркиванием. Кстати, встречал людей, которые на работе писали программы без пробелов, и их никто не выгонял, что по-моему возмутительно просто.
Цитата Сообщение от MrGluck Посмотреть сообщение
Занятно, как парня минусанули за резко негативное отношение к camel case.
По какому-то закону подлости корпоративным стандартом обычно выбирается самый дебильный стиль из возможных. Есть люди, которые вообще неспособны воспринимать пляску больших и малых букв как набор нескольких слов. В этом отношении разделение подчеркиваниями более демократично - прочитать-то такое все могут. Ссылаются только на стандарты резервирования, но они здесь не в тему, так как мы подчеркивания внутри имен обсуждаем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2014, 13:45

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru