Cách sử dụng Union và khai báo kiểu bit
Về căn bản Union tương tự như một Struct nhưng chỉ có điều Union có các trường thuộc tính nằm chung một vùng nhớ (chúng nằm đè lên nhau, nên khi ta thay đổi bất kì tường nào thì cũng ảnh đến các trường khác) và kích thước của Union mà ta khai báo sẽ chính là trường có kích thước lớn nhất bên trong nó.
Dưới đây là một ví dụ về cách kháo báo Union để xây dựng cấu trúc dùng cho số thực 32 bit (IEEE 754), một cách hay cho bạn nào muốn tạo giả cấu trúc số thực:
typedef union FloatStruct
{
float value;
struct
{
unsigned long Mantissa: 23;
unsigned int Expo: 8;
unsigned int Sign: 1;
};
};
Dưới đây là một ví dụ về cách kháo báo Union để xây dựng cấu trúc dùng cho số thực 32 bit (IEEE 754), một cách hay cho bạn nào muốn tạo giả cấu trúc số thực:
typedef union FloatStruct
{
float value;
struct
{
unsigned long Mantissa: 23;
unsigned int Expo: 8;
unsigned int Sign: 1;
};
};