722 ________Часть II. Программирование на C++
Имя должно быть по возможности самодостаточным: первое слово имени начинается со строчной буквы, а все последующие — с заглавных:
float currentBalance = 0.00;
unsigned long daySincel970;
char *firstName;
В отличие от венгерской нотации, где глобальные переменные отмечаются ведущим префиксом v, здесь и во многих других системах перед именем глобальной переменной помещается знак подчеркивания:
unsigned long _ticks;
char *_recordBuffer;
Имена функций также должны быть информативны, но начинаются, напротив, с заглавной буквы:
char *ConvertStringToUpperCase (char *lowerCase.String) ;
void AddToList(Node *insertedNode); ,
Таким образом, функции и переменные различаются по регистру первой буквы имени.
Классы, структуры и константы записываются исключительно в верхнем регистре и слова в именах отделяются друг от друга подчеркиваниями:
class LINKED_LIST;
class STACK : public LINKED_LIST;
struct NODE;
const int TITLE_LENGTH =80;
const bool TRUE = 1;
Эти рекомендации не'обеспечивают такой выразительности, как венгерская нотация, однако их легко запомнить и придерживаться. Они также придадут вашему коду единообразие, читабельность и ясность.
Замечание
Довольно часто, приобретая для своих программ библиотеки третьих производителей, вы заодно приобретаете и конфликты имен глобальных функций и переменных. В такую ситуацию вы попадете, например, используя библиотеку GUI (Graphical User Interface, Графический интерфейс пользователя) для 32-разрядных приложений защищенного режима DOS параллельно со стандартными заголовочными файлами Windows для распределения памяти в защищенном режиме DOS (GlobalAlloc и т. д.). Если библиотека третьей фирмы содержит функцию createBitmap, тЬ она вступит в конфликт с createBitmap из <windows.h>, даже если вы не собирались использовать функцию Windows. Чтобы избежать этой неприятности при создании собственных библиотек, можно добавить к именам ваших глобальных переменных и функций какую-нибудь мнемонику. Если вы создаете собственную функцию, скажем, CreateBitmap для библиотеки под назва-