Table of Contents
Tietojen tallentamisen ymmärtäminen on tärkeää C- ja C++-ohjelmien tehokkaalle ohjelmoinnille. Rakenteet ja liitot ovat perustietotyyppejä, jotka vaikuttavat muistin ulkoasuon ja kokoon. Tässä artikkelissa selitetään, miten muisti jaetaan näille tietotyypeille ja miten niiden koot lasketaan tarkasti.
Muistorakenne
C- ja C++-rakenne on kokoelma muuttujia, mahdollisesti erityyppisiä, ryhmiteltynä yhteen nimeen. Kääntäjä jakaa rakenteelle muistia asettamalla kullekin jäsenelle peräkkäin, ja pehmusteet voivat täyttää linjausvaatimukset.
Rakenne on jäsentensä kokojen summa sekä kaikki pehmusteet, jotka on lisätty linjausta varten. Pysäköinti varmistaa, että jokainen jäsen aloittaa osoitteesta, joka on jaollinen sen koon tai linjausvaatimuksen mukaan.
Unionien muistirakenne
Liitot ovat samanlaisia rakenteita, mutta eroavat toisistaan muistinjaossa. Kaikki liiton jäsenet jakavat saman muistitilan, joka on yhtä suuri kuin sen suurimman jäsenen koko. Tämä mahdollistaa useiden tietotyyppien miehittämisen samassa muistissa.
Liiton koon määrittää sen suurin jäsen sekä mahdollinen pehmuste linjausta varten. Kirjoittaminen yhdelle jäsenelle vaikuttaa muiden jäsenten tietoihin, joten liittoja käytetään muistitehokkaaseen tiedonjakoon.
Tietojen koon laskeminen
Rakenteiden ja ammattiliittojen koon laskeminen edellyttää yksittäisten jäsenten koon yhteenlaskemista ja pehmusteiden yhdenmukaistamista. []-operaattorin koko C:ssä ja C++:ssa on kokonaiskoko tavuina.
Esimerkiksi harkita rakenne, jossa [ ja . Koko rakenne riippuu koosta , koko [, ja pehmusteet lisätään linjaus. Samoin koko liiton on koko sen suurin jäsen.
- Kokonaiskoon määrittämiseen käytetään [ kokoa.
- Harkitkaa kunkin jäsenen osalta yhdenmukaistamisvaatimuksia.
- Tili kääntäjän lisäämästä pehmusteesta.
- Muista, että liitot jakavat muiston kaikkien jäsenten kesken.