Глава 5. Соглашения об именах и комментариях______________________727
Аналогично если счетчик шагов таймера является глобальным, то его желательно объявлять как
unsigned long vulTicks;
Как вы видели ранее, символ v также обозначает void, но в таком смысле он обычно используется вместе с префиксом указателя.
Где использовать венгерскую нотацию
Не правда ли, в венгерской нотации что-то есть? Напоследок стоит заметить, что едва ли уместно применять ее к функциям (представьте себе имя функции, предшествуемое префиксами типов результата и всех ее параметров), и действительно, на практике такое встречается крайне редко. Несмотря на кажущуюся загадочность, венгерская • нотация достигает своей цели. Беглый взгляд на переменные не только дает вам представление об их назначении и использовании, но и позволяет с легкостью идентифицировать их типы.
В этом разделе перечислены наиболее употребительные префиксы; разумеется, есть и другие. Многие программисты вводят собственные префиксы, наиболее отвечающие их проблемной области. Например, если в графической программе используется множество различных уровней цвета, то для обозначения цвета можно ввести префикс со (color — цвет). Тогда значение цвета "красный" может храниться в переменной coRed. Если вы захотите применить в своем проекте какую-либо разновидность венгерской нотации и вздумаете вводить свои собственные префиксы, то позаботьтесь о том, чтобы они были где-нибудь документированы — в комментариях ли, в печатной ли документации, чтобы следующие поколения программистов не мучились с расшифровкой ваших сокращений.
Многих отдельных программистов и целые компании отпугнула от венгерской нотации ее новизна. В действительности кроме Windows и некоторых библиотек для DOS она редко где встречается. Если она вам понравилась, вы получаете хороший инструмент для внесения ясности в ваши программы. Если же нет, то обратите внимание на другие возможности.
Обзор альтернативных соглашений об именовании
Простую альтернативу венгерской нотации, взятую на вооружение многими независимыми программистами, вы найдете в рекомендациях Zinc Application Framework. В них отвергается идея включения в имена мнемонических обозначений типов данных. Как и в венгерской нотации и большинстве других систем именования в C++, соглашения от Zinc также используют заглавные буквы для разделения слов в именах (например, currentBaiance) — в противоположность принятым в С подчеркиваниям (current_balance), которые Zinc резервирует для классов, структур и констант.