Rakenne (C-kieli)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 2. huhtikuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

C - kielessä rakenne ( struct) on yhdistetty tietotyyppi , joka kapseloi piilottamatta erityyppisiä arvoja . Järjestys, jossa arvot sijoitetaan muistiin, määritetään tyyppiä määritettäessä, ja se säilytetään objektien koko elinkaaren ajan, mikä mahdollistaa epäsuoran pääsyn (esimerkiksi osoittimien kautta ).

Esimerkki rakenneilmoituksesta:

struct str_name { int jäsen_1 ; kelluva jäsen_2 ; char jäsen_3 [ 256 ]; /* ... */ }; // rakenteen määritys struct str_name struct0 ; // rakenteen ilmoitus ja alustus struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // struct-ilmoitus ja kentän alustus // standardin tukema C99 lähtien struct str_name struct2 = {. jäsen_1 = 2 , . jäsen_2 = 3.1415f , . Member_3 = "tee" /* ... */ };

Tyyppi "rakenne" C:ssä sallii rekursion , eli sen koostumuksessa on osoittimia, jotka viittaavat juuri tämän rakenteen objekteihin. Siten C:n rakenteet yhdistävät ei vain monikot ja tietueet , vaan myös algebralliset tyypit . Esityksen helpottamiseksi rakenteen sanotaan olevan luokka, jonka oletuskentät ovat kaikki julkisia [1] .

C++ : ssa rakenteen käsite laajennettiin luokkaan , eli lisättiin mahdollisuus sisällyttää rakenteeseen metodifunktioita . Suurin ero on se, että "kolmen säännön" mukaan rakenteilla on aina konstruktori , vaikka sitä ei olisikaan erikseen määritelty lähdekoodissa. Siten puhuminen " rakenteista C++:ssa " ei ole oikein. Sama koskee C# :a .

Go- kieli käyttää rakenteita, jotka ovat toiminnaltaan lähellä luokkia (metodeja voidaan liittää rakenteeseen), vaikka jotkut OOP -periaatteet puuttuvat (esim. perinnöllisyys )

Muistiinpanot

  1. rakenne (C++) . C++-kieliviite . msdn.microsoft.com. Haettu 16. marraskuuta 2017. Arkistoitu alkuperäisestä 16. marraskuuta 2017.