首页 > 解决方案 > C结构,具有不同位大小的变量

问题描述

我不确定如何在 C 中创建一个具有不同位大小的变量的 Struct,例如:

我想创建一个结构,其中一个变量为 8 位整数,一个变量为 16 位布尔值,一个为 8 位布尔值,一个为 32 位浮点数等。

我来自java,所以这一切都很混乱,谢谢。

标签: cstructbit

解决方案


#include <stdio.h>
#include<stdbool.h>
struct{
    float d; // By default 32 bits are initialized
    unsigned int a: 8;
    bool my_bool_8;
    bool my_bool_16; 
}nibble;

int main()
{
    printf("Size of structure is %lu\n", sizeof(nibble));
    printf("Size of my_bool_8 is %zu\n", sizeof(nibble.my_bool_8));
    return 0;
}

推荐阅读