Notacja węgierska

Z Wikipedii, wolnej encyklopedii

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++:

przedrostek znaczenie
s string (łańcuch znaków)
sz string (łańcuch znaków zakończony bajtem zerowym – null-em)
c char (jeden znak), również const – wartość stała (szczególnie w przypadku użycia wskaźników)
by byte, unsigned char
n short
i int
x, y int (przy zmiennych określających współrzędne)
cx, cy int (przy zmiennych określających rozmiar, długość)
l long
w word
dw dword
b boolean (wartość logiczna: prawda lub fałsz)
f flaga
fn funkcja
h handle (uchwyt)
p pointer (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).

przedrostek znaczenie
lpcsz „długi” („daleki”) wskaźnik na stały ciąg znaków zakończony bajtem zerowym
pfn wskaź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ż[edytuj | edytuj kod]