Tag: field

位字段及其对齐如何在C编程中起作用?

我需要你帮助理解位域在C编程中的工作原理。 我已经声明了这个结构: struct message { unsigned char first_char : 6; unsigned char second_char : 6; unsigned char third_char : 6; unsigned char fourth_char : 6; unsigned char fifth_char : 6; unsigned char sixth_char : 6; unsigned char seventh_char : 6; unsigned char eigth_char : 6; }__packed message; 我使用sizeof(message)将结构的大小保存为整数。 我认为大小的值将是6,因为6 * 8 = 48位,这是6个字节,但它的大小值为8个字节。 任何人都可以向我解释为什么,以及比特字段和它们的比对是如何工作的? 编辑 […]