如何在使用位字段的C中显示结构变量的位模式?

如何在使用位字段的C中显示结构变量的位模式?,c,struct,bit-fields,C,Struct,Bit Fields,现在让我们在std1中存储一些值。现在我们如何在C中显示结构变量std1的位模式?对于C中的任何数据类型,您可以通过使用字符类型指针对其进行迭代来检查其原始二进制内容。例如: Struct some{ unsigned int a:5; Unsigned int b:6; } std1; const-uint8\u-t*ptr=(const-uint8\u-t*)和std1; 对于(size_t i=0;我希望您能立即回复,请您提供如何通过为

现在让我们在std1中存储一些值。现在我们如何在C中显示结构变量std1的位模式?

对于C中的任何数据类型,您可以通过使用字符类型指针对其进行迭代来检查其原始二进制内容。例如:

    Struct some{
         unsigned int a:5;
         Unsigned int b:6;
    } std1;
const-uint8\u-t*ptr=(const-uint8\u-t*)和std1;

对于(size_t i=0;我希望您能立即回复,请您提供如何通过为结构分配一些成员来将std1复制到联合体的代码。此外,我还被限制使用任何其他头文件,然后是stdio.h、stdlib.h和malloc.h,因此uint8_t*提供一个错误。谢谢您,因为我仅限于使用stdlib.h、stdio.h和malloc.h。它显示了一个错误。)编译错误,你能告诉我其他的方法吗?谢谢你的帮助@Lundin@AndrewAllen我没有测试这段代码。你包括stdint.h吗?否则,如果不可能,只需将
uint8\u t
切换为
unsigned char
。不,我没有包括stdint。然后我使用unsigned char代替uint\u 8,我得到了十六进制l值作为输出(这是我的ans吗?@lundin感谢您的帮助。
const uint8_t* ptr = (const uint8_t*)&std1;
for(size_t i=0; i<sizeof std1; i++)
{
  printf("%.2X ", (unsigned int)ptr[i]);
}