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

问题描述

    Struct some{
         unsigned int a:5;
         Unsigned int b:6;
    } std1;

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

解决方法

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

const uint8_t* ptr = (const uint8_t*)&std1;
for(size_t i=0; i<sizeof std1; i++)
{
  printf("%.2X ",(unsigned int)ptr[i]);
}

({uint8_t在所有现实系统中将始终是字符类型,除了某些功能异常的传统DSP不应用于任何目的。)