Struktúra B

Címkék: C szerkezete inicializálása a szerkezet, inicializálja beágyazott struktúrák, mutató egy szerkezetet, beágyazott struktúrák, mutatókat beágyazott struktúrák, mutatókat a szerkezet a mező, a összehangolása szerkezet mezők, Pragma csomag.

A világ körül lehet szimulálni a legkülönfélébb módokon. A legtermészetesebb közülük van egy kép róla, mint egy sor tárgyak. Minden objektum a saját tulajdonságai. Például egy személy kora, neme, magasság, súly, stb Kerékpár - típusú kerék mérete, tömege, anyaga, gyártó, így az áru a boltban -. Azonosító számát, nevét, előadó, súly, ár, kedvezmény, stb

Az osztályok tárgyak halmaza ezek a tulajdonságok ugyanazok: minden kutya lehet leírni bizonyos pontossággal, ugyanazokat a tulajdonságokat, de az értékek ezek a tulajdonságok más lesz.

Minden síkon van egy sor közös tulajdonságok ugyanazon osztályon belül. Ha van egy pontosabb leírást, meg tudjuk különböztetni a alosztályok: kétéltű repülőgépek, harci repülőgépek, utasszállító - és ezen csoportokon belül kell leírni tárgyakat. Például, meg kell tárolni információt alkalmazottak. Minden alkalmazott, általában egy nagy számú különböző tulajdonságokkal rendelkeznek. Úgy döntünk, csak az is, hogy mi érdekli a megoldás alkalmazási problémák: nem, név, vezetéknév, születési dátum, személyi azonosító szám. Ahhoz, hogy működjön együtt az ilyen tárgy, szükségünk van egy szerkezet, amely képes lenne összesíteni a különböző típusú adatok egyetlen név alá. Erre a célra, a B szerkezetet használunk.

Fields bármelyik szerkezeti bejelentett fajta, kivéve a szerkezet az azonos típusú, de tárolhatja egy mutató a szerkezete típusa:

Abban az esetben, ha több mező típusa azonos, akkor lehet vesszővel elválasztva:

Miután bejelentették a szerkezet, akkor létrehozhat egy változót az ilyen típusú egy fenntartott szó struct. Hozzáférés az mezőstruktúrát keresztül végezzük a műveletet pont:

A szerkezet deklarált globális kontextusban láthatja mindenki. A szerkezet is deklarált függvény:

Akkor egyszerűsítése például szintaxis lehetővé teszi, hogy példányait a szerkezet után a definíció:

A szerkezet is lehet anonim. Akkor nem tudjuk használni a nevét a struktúra a jövőben.

Ebben a példában, hoztuk létre a változó A. Ez egy szerkezet két mezőt.

A szerkezet lehet inicializálni idején létrehozását egy tömb. Fields ebben az esetben lesz rendelve ahhoz.

Megjegyzés: ezen a módon csak initsalizirovat szerkezetét. Értéket rendelni az egész szerkezet tehát lehetetlen.

Amikor meghatározza az új struktúra segítségével hivatalos szó struct, egy új azonosítót hozunk létre a névtér struktúrák (ennek semmi köze a névterek C ++). Az eléréséhez, akkor kell használni a hivatalos szó struct. Akkor meg egy új típusú szolgáltatást használva a szót typedef. Akkor alias generálódik a szerkezet, amit egy globális környezetben.

Megjegyzés. Ha hozunk létre egy új típusú struktúra, olyan területen, amely egy mutató az azonos típusú, azt meg is kell nyilvánítani a fenntartott szó struct

Mutató egy szerkezetet hozunk létre a szokásos módon. A különbség abban rejlik, hogy akkor nézze meg a szerkezetet, a mutató területeken a „kéz” üzemmód (+ mínusz több). Példa - a felhasználó belép a számát - a méret a tömb tagjai. Ez a mező hozza mindegyik bejelentkezési nevet és jelszót. A harmadik mező - ID - automatikusan beáll. Ezután az összes felhasználó számára megjelenik.

Megjegyzés eltávolítását egy sor szerkezetek: ha eltávolít egy példánya a szerkezet nem távolítja el a saját területén, így először el kell távolítani a pályáról, majd törölje a tömb.
Amikor egy funkció jsonUser átadjuk egy mutatót a példány a szerkezet, így a funkció eléréséhez a földeken a nyíl operátor.

Struktúra B
Benyújtása a memória szerkezet.

Az első szerkezet kell egy mérete 6 bájt, a második 8 bájt, a harmadik bájt 7, hanem 32 bites gép fordító VC azokat minden három egyenlő 8 bájt. A szabvány biztosítja, hogy a mezők vannak elrendezve egymás mögött, de nem garantálja, hogy folyamatosan.

Lehetőség van megváltoztatni a csomagolás struktúrák a memóriában. Akkor kifejezetten mondja a fordító, hogyan lehet a csomagolás maga a mezők, egyesületek vagy osztályú területeken. Hogyan kell ezt csinálni függ a fordító. Az egyik leggyakoribb módja pragmájához csomag ()

Segítségével #pragma csomag nem fogad: a munkaprogram logika nem függ a belső szerkezetének ábrázolása (persze, ha nem csinál rendszert programozás, vagy megtörni mások programok és hálózatok).

Szabványos viselkedés működtetésekor egy szerkezetet más nincs meghatározva. Ez azt jelenti, hogy még ha a szerkezetek az ugyanazon a területen, akkor nem kifejezetten leadott egy szerkezetet más.

Ez működik, de ez egy hack, amit el kell kerülni. Írj helyesen így

Ólom, hogy egy sor struktúrát (vagy bármilyen más típusú) standard lehető (bár különböző fordítóprogramok olyan eszközök, hogy erre).
De B ​​is lehetséges.

De ne feledjük, hogy ebben az esetben a viselkedés nem definiált.

A szerkezet maga lehet a mező struktúra. Példa: Structure Model - a jármű modell egy név, szám, egész évben, és a mező elkészíthető, ami tartja a márkanév és számát.

Beágyazott szerkezetek tölt többdimenziós tömböket. Az inicializálási lehet kiindulási előző példa a következő:

Ui hasonló módon elindítani a vonal nem szükséges, ezért itt történik csak, hogy egyszerűsítse a kódot.

Mutatókat a szerkezet mezők is általánosnak tekinthető mutatók. Támpontot beágyazott struktúrák lehetséges, csak ha a szerkezetet a megadott. Kissé újra előző példában: „deanonimiziruem” beágyazott nevezett szerkezet és mutatókat a szerkezetek vesznek mező Model:

Mint korábban említettük, a B, akkor is, ha a két szerkezetet ugyanazon a területen, de a szerkezet különböző neveket, akkor nem vezethet az azonos típusú. Így van, hogy megszabaduljon a névtelen beágyazott struktúrák, ha kell, hogy egy mutató. Meg lehet próbálni, hogy egy mutató típusú char * szerkezetére, de nincs garancia arra, hogy a mezők találhatók véglegesen.

1. A verem végre az „csomópont” szerkezet, amely tárolja az értéket (int típusú a példánkban), és egy mutatót a következő csomópontot. Ez egy hatékony végrehajtását, amely előírja eltávolítása és kiadása memória minden csomópont a call művelet push and pop.

2. észre a szerkezet - tömb, és bizonyos műveletek tömbök. tömb típusú meghatározzuk azokat a makro.

3. felépítése A vonal két szerkezetek pont. A rövidség kedvéért csak néhány eladási ügyletek

4. A szerkezet egy komplex szám és funkciók dolgozni vele.

ru-Cyrl 18- bemutató Sypachev S. S. 1989/04/14 [email protected] Stepan Sypachev diákok

Kapcsolódó cikkek