Re[3]: coding style: префиксы у указателей в C++
От: Roman Odaisky Украина  
Дата: 14.08.11 08:07
Оценка:
Здравствуйте, inviz, Вы писали:

A>>void do_some(void* pBuf, size_t cbBuf);

A>>// ИМО, это читается не хуже чем buf, bufSizeInBytes

I>А по-моему, намного хуже. Самый лучший вариант — просто buffer (в префиксе смысла нет, а экономия трех символов не улучшает читабельность) и size (логично, что размер буфера в байтах в данном случае). А вот cbBuf ужасно дико и непонятно смотрится для программиста, не знакомого с венгерской нотацией (например, никогда не программировавшего под Win32).


Как всегда, зашла речь о венгерской нотации, что, как всегда, привело к смешению в кучу коней и людей. Разве не видно, что «p» и «cb» — префиксы совершенно разного назначения? «p» дублирует информацию, указанную в программе в другом месте: pBuf есть указатель на что-то, но это и так ясно из типа void *. В то же время, size_t может содержать размер, выраженный в разных единицах, и здесь префикс «cb» уточняет, что это размер в байтах (наряду с «cb» — «count of bytes» используют и «cch» — «count of characters», например, если в буфере лежит строка в UTF-8). Так что «p» ничего нового не говорит, а «cb» дает дополнительную информацию о содержимом параметра.
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.