Unkarilainen merkintä

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25. syyskuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 19 muokkausta .

Unkarinkielinen merkintäohjelmointi  on  nimeämiskäytäntö muuttujille , vakioille ja muille ohjelmakoodin tunnisteille . Unkarilainen notaatio sai nimensä unkarilaissyntyisen Microsoft -ohjelmoijan Charles Simonin ( Hung. Simonyi Károly ) ansiosta, joka ehdotti sitä jo MS-DOS :n ensimmäisten versioiden kehittämisen päivinä . Tästä järjestelmästä on tullut Microsoftin sisäinen standardi [1] .

Unkarinkielisen merkinnän ydin on, että tunnisteiden nimiä edeltää ennalta määrätyt etuliitteet, jotka koostuvat yhdestä tai useammasta merkistä. Samaan aikaan pääsääntöisesti etuliitteiden läsnäolo tai niiden kirjoittaminen ei ole ohjelmointikielien vaatimus , ja jokaisella ohjelmoijalla (tai ohjelmoijaryhmällä) voi olla omansa.

Käytetty etuliitejärjestelmä riippuu monista tekijöistä:

Esimerkkejä

Kirjoita etuliitteet

Etuliite Lyhenne jstk Merkitys Esimerkki
s merkkijono linja sClientName
sz nollapäätteinen merkkijono nollapäätteinen merkkijono szClientName
n, i int kokonaislukumuuttuja nSize, iSize
l pitkä pitkä kokonaisluku lAmount
b boolean boolean bIsEmpty
a joukko joukko aDimensions
t, dt aika, päivämäärä ja kellonaika aika, päivämäärä ja aika tDelivery,dtDelivery
s osoitin osoitin pBox
lp pitkä osoitin kaksoisosoitin (kaukoosoitin). lpBox
r viite linkki rBoxes
h kahva kuvaaja hWindow
m_ jäsen jäsenmuuttuja m_sAddress
g_ maailmanlaajuisesti globaali muuttuja g_nSpeed
C luokkaa Luokka CString
T tyyppi tyyppi TObject
minä käyttöliittymä käyttöliittymä IDispatch
v mitätön tyypin puute vReserved

Kuten yllä olevassa esimerkissä näet, etuliite voi olla myös yhdistelmä. m_sAddressEsimerkiksi etuliitteiden "m_" ja "s" ( ) yhdistelmää käytetään nimeämään luokan merkkijonojäsenmuuttuja .

Semanttiset etuliitteet

Unkarilainen merkintä sovelluksille :

Etuliite Lyhenne jstk Merkitys Esimerkki
i indeksi Indeksi int ix; Array[ix] = 10;
d delta Ero arvojen välillä int a, b; ... dba = b - a;
n määrä Määrä size_t nFound = 0;
a Perustelu Perustelu SomeClass::SomeClass(int aX) : x(aX) {}
minä käyttöliittymä Käyttöliittymä (tyypin nimessä) interface IFactory {}

Puolesta ja vastaan

Ohjelmoijien joukossa on sekä unkarilaisen merkinnän käytön kannattajia että vastustajia. Vastustajat väittävät, että se on hankalaa ja vain huonontaa koodin ymmärtämistä. Kannattajat väittävät, että liian monet ihmiset ymmärtävät väärin pääidean ja käyttävät merkintää väärin.

Edut

Vitsi

Tätä nimeämistyyliä kutsutaan "Unkarilaiseksi" merkinnällä sen keksineen Microsoftin ohjelmointijohtajan Charles Simonyin syntymäpaikan mukaan. (Ei siksi, että sen käyttäminen saa ohjelmat näyttämään unkariksi kirjoitetuilta [3] )

A. Golub. Riittävän pitkä köysi.

Haitat

Tunnettu unkarilaisen merkinnän vastustaja on Linus Torvalds : "Muuttujan tyypin kirjoittaminen sen nimeen (ns. unkarilainen notaatio) on virheellinen - kääntäjä tuntee jo tyypit ja osaa tarkistaa ne, mikä hämmentää ohjelmoijaa. ” [5] .

Mielenkiintoisia faktoja

Katso myös

Muistiinpanot

  1. Unkarin merkintä . Haettu 14. kesäkuuta 2022. Arkistoitu alkuperäisestä 10. kesäkuuta 2006.
  2. Joel Spolsky . Kuinka saada väärä koodi näyttämään väärältä Arkistoitu 19. heinäkuuta 2006 Wayback Machinessa
  3. Unkarin kieltä , vaikka siinä on latinalaiset aakkoset, pidetään erittäin lukukelvottomana tietämättömille.
  4. 1 2 Inside C++ - Unkarin merkintä . Haettu 12. marraskuuta 2008. Arkistoitu alkuperäisestä 30. lokakuuta 2008.
  5. "Linux-ytimen koodaustyyli" Arkistoitu 23. syyskuuta 2005. . Linux-ytimen dokumentaatio (englanniksi).
  6. Tietoja digrafista sz englanninkielisessä Wikipediassa