Глава 5. Соглашения об именах и комментариях______________________779
Как видно из этих трех примеров, если вы в курсе, что f в венгерской нотации символизирует флаг, то комментарии, описывающие эти переменные, становятся совершенно излишними — их имена сами себя комментируют.
Указатели на функции
Префикс fn используется для обозначения указателей на функцию. Указатель на функцию с двумя целочисленными параметрами, возвращающую целочисленное значение, определяется следующим образом:
int (*fnAdd)(int, int);
Дескрипторы
Как мы видели в примере с GlobalAlloc, для дескрипторов применяется префикс h. Например, чтобы освободить некоторую область глобальной динамической памяти, идентифицируемую дескриптором hGlobal, напишите
GiobalFree(hGlobal);
Индексы массивов
Индекс массива обозначается через i. Чтобы в массиве
char rgchName[80]; // символьный массив имен
изменить регистр всех букв на верхний, создайте цикл
for (int ichCurrent = 0; ichCurrent < 80; ichCurrent++) {
rgchName[ichCurrent] = toupper(rgchName[ichCurrent]) ;
}
Указатели
Указатели в венгерской нотации отмечаются префиксами р или lp (lp означает long pointer, длинный указатель, подчеркивая тем самым его длину). Обращаясь к подсказке Borland вы нередко столкнетесь с переменными, имена которых начинаются на lp:
int lstrcmp(LPCSTR IpszStringI, LPCSTR lpsz3tring2) ;
istrcmp сравнивает две строки (sz употребляется для строк в стиле С, т. е. завершающихся нулем — zero-terminated string). Добавление lp к sz просто означает, что перед нами длинный указатель на строку, завершающуюся