tôi sử dụng sự kết hợp sau đây để đơn giản hóa byte, nibble và chút hoạt động:C++ cấu trúc vô danh
union Byte
{
struct {
unsigned int bit_0: 1;
unsigned int bit_1: 1;
unsigned int bit_2: 1;
unsigned int bit_3: 1;
unsigned int bit_4: 1;
unsigned int bit_5: 1;
unsigned int bit_6: 1;
unsigned int bit_7: 1;
};
struct {
unsigned int nibble_0: 4;
unsigned int nibble_1: 4;
};
unsigned char byte;
};
Nó hoạt động tốt đẹp, nhưng nó cũng tạo ra cảnh báo này:
cảnh báo: ISO C++ cấm vô danh structs [-pedantic]
Ok, rất vui được biết. Nhưng ... làm thế nào để có được cảnh báo này ra khỏi đầu ra g + của tôi? Có khả năng viết một cái gì đó như công đoàn này mà không có vấn đề này?
Tại sao không chỉ đơn giản là tên struct của bạn? –
Bạn sẽ không thể làm những gì bạn đang cố gắng làm trong các cõi hợp lệ C++. Nó có thể hoạt động, nhưng nó sẽ là hành vi không xác định. –
Tôi có thể đặt tên cho nó - ví dụ như struct nibbles và biến nó thành một lĩnh vực của một công đoàn. Nhưng sau đó tôi sẽ phải truy cập nó Byte.nibbles.nibble_0. Nó sẽ không được tốt đẹp để sử dụng;). – Dejwi