article

Венге́рская нота́ция — соглашение программистов об именовании переменных, констант и прочих идентификаторов в коде программ. Свое название венгерская нотация получила благодаря программисту компании Майкрософт венгерского происхождения Чарльзу Шимоньи (Charles Simonyi), предложившего её ещё во времена разработки первых версий MS-DOS. Со временем, его система стала не только внутренним стандартом Майкрософт, но и широко распространенным правилом среди программистов всего мира.

Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговоренными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) могут быть своими. Использование в каждом из языков пограммирования своей терминологии так же вносит особенности в выбор префиксов.

Примеры


|-- !Префикс ||Сокращение от ||Смысл||Пример |-- |s ||string ||строка||sClientName |- |sz ||zero-terminated string || строка, ограниченная нуль-терминатором||szClientName |- |b ||boolean ||булева переменная||bIsEmpty |- |a ||array ||массив||aDimensions |- |t, dt||time, datetime ||время, дата и время||tDelivery, dtDelivery |- |p ||pointer ||указатель||pBox |- |lp ||long pointer ||двойной (дальний) указатель||lpBox |- |r ||reference ||ссылка||rBoxes |- |h ||handle ||дескриптор||hWindow |- |m_ ||member ||переменная-член||m_sAddress |- |g_ ||global ||глобальная переменная||g_nSpeed |- |C ||class ||класс||CString |- |T ||type ||тип||TObject |}

Как видно в приведенном примере, префикс может быть и составным. Например, для именования строковой переменной-члена класса использована комбинация префиксов «m_» и «s» (m_sAddress).

За и против


Среди программистов есть как сторонники, так и противники использования такой системы. Главными аргументами сторон являются «вы сами не можете понять, что тут написано, и постоянно ошибаетесь» и «ваши префиксы — нечитаемы». Однако при использовании ряда стандартных библиотек, поставляемых вместе с компиляторами, а так же при использовании API иметь дело с венгерской нотацией всё равно приходится.

См. также


Программирование

Ungarische Notation | Hungarian notation | Notación húngara | Notation hongroise | Magyar jelölés | Notazione ungara | Hongaarse notatie | Notacja węgierska | Notação húngara

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Венгерская нотация".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld