Accesați un singur bit

În C, un alt tip este definit pentru stocarea mai multor variabile de diferite tipuri în memorie. Aceasta este unificarea. O îmbinare este declarată în același mod ca structura, de exemplu:







Această conexiune nu specifică nicio variabilă. Setează modelul de îmbinare.

Puteți declara o variabilă:

sind u alfa, beta;

Ați putea declara variabile în același timp cu șablonul. Spre deosebire de structura pentru o variabilă de tip union în memorie, este alocată doar cât este necesar elementului union care are cea mai mare dimensiune în octeți. Deci sub alfa variabilă vor fi alocate patru octeți, pentru variabila i - 2 octeți; pentru variabila ch - 1 octet; pentru variabile l - 4 octeți;

Sintaxa pentru utilizarea elementelor de îmbinare este aceeași ca și pentru structuri:

Pentru a fuziona, operația -> este permisă și dacă accesăm uniunea folosind pointerul.

6.3. Câmpuri bit

Structura poate conține câmpuri de biți. Componentele întregi de tip semnat și nesemnat pot fi declarate ca câmpuri de biți cu o lățime de 1 până la 16 biți. Lățimea câmpului de biți și identificatorul său opțional sunt specificate după cum urmează:

tip <идентификатор>: lățime;

unde tipul este char, nesemnate char, int sau nesigned int.







Dacă identificatorul câmpului de biți este omis, numărul de biți specificat de expresia lățimii este alocat în memorie, dar câmpul rămâne indisponibil pentru program. Dacă valoarea lățimii este zero, următorul câmp va începe cu următorul cuvânt de memorie.

Pentru câmpurile specificate în structură, se specifică următoarea alocare a memoriei:

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

Întregul câmp este stocat ca o completare la 2, bitul cel mai din stânga fiind cel mai înalt. Pentru un câmp bit de tip int (de exemplu, semnat), cel mai semnificativ bit este interpretat ca semnat. De exemplu, un câmp int intrat de lățime 1 poate conține numai -1 și 0, deoarece modelul de biți 1 va fi interpretat ca -1.

Rezultatul programului: -1.

Spre deosebire de alte limbi de programare, limba C oferă acces la unul sau mai mulți biți într-un octet sau cuvânt. Acest lucru are avantajele sale. Dacă mai multe variabile iau doar două valori (astfel de variabile se numesc steaguri), atunci poate fi folosit un bit.

struct structură_name

tipul 1: lungimea în biți;

tipul 2: lungimea în biți;

tipul N: lungimea în biți;

unsigned one_bit. 1;

apoi pentru obj, 8 biți vor fi alocate, dar numai primul bit va fi folosit.

6.5. Tipuri de redenumire - typedef

Limbajul C cu ajutorul typedef vă permite să specificați un nume nou pentru variabilele existente. Acest lucru nu creează un nou tip de date.

typedef char SIMBOL;

typedef nesemnate UNSIGN;

typedef float real;

Un operator typedef este adesea folosit cu ajutorul structurilor:

typedef struct st_tag

Acum puteți folosi







Articole similare

Trimiteți-le prietenilor: