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) |
Przykład użycia notacji węgierskiej do nazywania obiektów w C#:
przedrostek | znaczenie |
---|---|
asm | Assembly |
bln | Boolean |
btn | Button |
ch | Char |
cbx | CheckBox |
cmb | ComboBox |
ctr | Container |
dcol | DataColumn |
dgrid | DataGrid |
dgdtpc | DataGridDateTimePickerColumn |
dgts | DataGridTableStyle |
dgtbc | DataGridTextBoxColumn |
dreader | DataReader |
drow | DataRow |
dset | DataSet |
dtable | DateTable |
date | DateTime |
dialog | Dialog |
dr | DialogResult |
dbl | Double |
ex | Exception |
gbx | GroupBox |
htbl | HashTable |
iml | ImageList |
int | Integer |
lbl | Label |
lbx | ListBox |
lv | ListView |
rmt | MarshallByRedObject |
mm | Mainmenu |
mi | MenuItem |
frame | MDI-Frame |
sheet | MDI-Sheet |
nud | NumericUpDown |
pnl | Panel |
pbx | PictureBox |
rbtn | RadioButton |
form | SDI-Form |
sqlcom | SqlCommand |
sqlcomb | SqlCommandBuilder |
sqlcon | SqlConnection |
sqlda | SqlDataAdapter |
stb | StatusBar |
str | String |
strb | StringBuilder |
tabctrl | TabControl |
tabpage | TabPage |
tbx | TextBox |
tbr | ToolBar |
tbb | ToolBarButton |
tmr | Timer |
usr | UserControl |
wpl | WindowsPrincipal |
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