Egyetlen bit elérése

A C-ben egy másik típus van definiálva a különböző típusú változók tárolására a memóriában. Ez az egyesítés. A csatlakozás ugyanúgy deklarálódik, mint a struktúra, például:

Ez a csatlakozás nem tartalmaz semmilyen változót. Meghatározza az összekapcsolási mintát.

Kijelenthet egy változót:

union u alpha, béta;

A változókat a sablonokkal egyidejűleg deklarálhatja. A memóriában lévő típusú univerzális változó struktúrájától eltérően csak annyit kell megadni, hogy a bájtokban a legnagyobb méretű szakszervezeti elemek ki vannak osztva. Tehát az alfa változó négy bájtra osztható, az i-2 byte változó esetén; változó ch - 1 bájt; az 1 - 4 bájtra változó;

Az egyes elemek használatának szintaktikája ugyanaz, mint a szerkezetek esetében:

Az egyesítéshez a művelet -> is megengedett, ha a mutató használatával elérjük a szakszervezetet.

6.3. Bitmezők

A szerkezet bitmezőket tartalmazhat. Az aláírt és az alá nem írt típusok teljes összetevőit 1-16 bit szélességű bitmezőként deklarálhatják. A bitmező szélessége és opcionális azonosítója a következőképpen van megadva:

típus <идентификатор>: szélesség;

ahol a típus char, unsigned char, int vagy unsigned int.

Ha a bitmező-azonosító el van hagyva, a szélesség-kifejezés által meghatározott bitek száma a memóriában van elosztva, de a mező nem áll rendelkezésre a program számára. Ha a szélesség értéke nulla, a következő mező a következő memóriaszóval kezdődik.

A struktúrában megadott mezők esetében a következő memóriaelosztás van megadva:

15 14 12 11 10 9 8 7 6 5 4 3 2 1 0

x x x x x x x x x x x x x x x

A teljes mezők 2-es kiegészítéseként tárolódnak, a legrégebbi bit pedig a legmagasabb. Az int típusú bitmező (például aláírás) esetén a legjelentősebb bit az aláírással értelmezhető. Például az 1-es szélességű aláírt int mező csak -1 és 0 lehet, mivel az 1. bitmintát -1-nek fogják értelmezni.

A program eredménye: -1.

Más programozási nyelvektől eltérően a C nyelv egy vagy több bitet biztosít egy bájtban vagy egy szóban. Ennek előnyei vannak. Ha sok változó csak két értéket vesz fel (ilyen változókat zászlóknak neveznek), akkor 1 bit használható.

struct struktúra_neve

típusnév 1: hosszúság bitekben;

típusnév 2: hosszúság bitben;

típusnév N: hosszúság bitben;

aláírás nélküli one_bit. 1;

akkor obj esetén 8 bitet osztanak ki, de csak az első bitet fogja használni.

6.5. Típusok átnevezése - typedef

A C nyelv segítségével a typedef segítségével új nevet adhat meg a meglévő változókhoz. Ez nem hoz létre új adattípust.

typedef char SIMBOL;

typedef unsigned UNSIGN;

typedef float real;

Egy tipizált operátort gyakran használnak struktúrák használatával:

typedef struct st_tag

Most használhatja a

Kapcsolódó cikkek