Pole bitowe – konstrukcja w języku C oraz C++, deklarująca zmienną składową struktury lub klasy jako zmienną typu całkowitoliczbowego, zajmującą określoną liczbę bitów[1]. Wartość wyrażenia określającego długość pola musi być znana w momencie kompilacji. Pola bitowe można zastosować w celu optymalizacji (zmniejszenia) zajętości pamięci. Należy jednak mieć na uwadze fakt, że czas dostępu do pola bitowego jest dłuższy od czasu dostępu do zmiennej całkowitej. Podstawowym zastosowaniem pól bitowych jest obsługa urządzeń zewnętrznych[2] dostępnych przez porty wejścia/wyjścia lub przez określony obszar pamięci.
Składnia definicji pola bitowego
- Pole bitowe może być jakiegokolwiek typu całkowitego, a więc znakowe,
short
, int
, long
– w obu wariantach: signed
albo unsigned
– może być także logiczne, a nawet wyliczeniowe.
- Następnie umieszcza się nazwę tego pola.
- Za nim dwukropek i liczbę określającą na ilu bitach ma być przechowywana w tym polu informacja.
Przykład
W poniższym przykładzie struktura Data definiuje trzy pola bitowe:
- pole
m_dzienTygodnia
pozwala przechowywać liczby o wartościach od 0 do 7, ponieważ tylko te można zapisać na trzech bitach.
- pole
m_dzienMiesiaca
pozwala przechowywać liczby o wartościach od 0 do 31,
- pole
m_miesiac
pozwala przechować liczby od 0 do 15.
struct Data
{
unsigned short m_dzienTygodnia:3;
unsigned short m_dzienMiesiaca:5;
unsigned short m_miesiac:4;
};
Zobacz też
Przypisy
Bibliografia
- Jerzy Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. Kraków: Oficyna Kallimach, 1993.