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++:
| 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, integerm_iZmienna- zmienna w strukturze lub klasie, integerm_Zmienna- zmienna w strukturze lub klasies_Zmienna- zmienna statyczna klasy_Zmienna- zmienna lokalna