Notacja węgierska
Ten artykuł od 2022-09 wymaga zweryfikowania podanych informacji. |
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