Notacja węgierska

Notacja węgierska (ang. Hungarian Notation) – w programowaniu sposób zapisu nazw zmiennych oraz obiektów, polegający na poprzedzaniu właściwej nazwy małą literą (literami) określającą rodzaj tej zmiennej (obiektu).

Notację węgierską wymyślił Charles Simonyi, programista z Microsoft. Można spotkać się z takimi formatami zapisu nazw zmiennych:

iLiczba
i_Liczba
i_liczba

Przykład użycia notacji węgierskiej do nazywania zmiennych w C++:

przedrostekznaczenie
sstring (łańcuch znaków)
szstring (łańcuch znaków zakończony bajtem zerowym – null-em)
cchar (jeden znak), również const – wartość stała (szczególnie w przypadku użycia wskaźników)
bybyte, unsigned char
nshort
iint
x, yint (przy zmiennych określających współrzędne)
cx, cyint (przy zmiennych określających rozmiar, długość)
llong
wword
dwdword
bboolean (wartość logiczna: prawda lub fałsz)
fflaga
fnfunkcja
hhandle (uchwyt)
ppointer (wskaźnik)

Charakterystyczne dla notacji węgierskiej (tworzące jej „węgierskie brzmienie”) są również złożenia przedrostków, zbliżone do składania morfemów gramatycznych z morfemami znaczeniowymi w języku węgierskim (i innych językach aglutynacyjnych).

przedrostekznaczenie
lpcsz„długi” („daleki”) wskaźnik na stały ciąg znaków zakończony bajtem zerowym
pfnwskaźnik na funkcję

Największą wadą tego systemu jest to, że jeśli chce się zmienić typ zmiennej, trzeba poprawiać nazwę w każdym miejscu występowania jej w programie.

Notację węgierską stosuje się także w celu zaznaczenia zasięgu zmiennej, np.:

  • g_iZmienna - zmienna globalna, integer
  • m_iZmienna - zmienna w strukturze lub klasie, integer
  • m_Zmienna  - zmienna w strukturze lub klasie
  • s_Zmienna  - zmienna statyczna klasy
  • _Zmienna   - zmienna lokalna

Zobacz też