Notacja węgierska

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

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. Podane niżej przedrostki są tylko jednym z przykładów formatu zapisu zmiennych w notacji węgierskiej. Tak naprawdę sposobów jest tyle, ilu jest programistów korzystających z tej notacji. Różnie także nazywane są zmienne. Przykładowo można spotkać się z formatami:

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ę

Notacja węgierska, przez wielu wręcz uwielbiana, u innych wywołuje mieszane uczucia. Główną wadą tego systemu jest to, że jeśli chce się zmienić typ zmiennej, trzeba poprawiać nazwę w każdym miejscu programu. W związku z tym notacja nie jest najlepszym rozwiązaniem dla programistów nieco roztargnionych (a także programistów języków dynamicznych).

Notację węgierską stosuje się także w celu zaznaczenia zasięgu zmiennej. Przykładowo:

  • 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]