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 для библиотеки под назва-