C结构,具有不同位大小的变量
我不知道如何在C中创建一个变量具有不同位大小的结构,例如: 我想创建一个结构,其中一个变量为8位整数,一个变量为16位布尔值,一个变量为8位布尔值,一个变量为32位浮点数,等等C结构,具有不同位大小的变量,c,struct,bit,C,Struct,Bit,我不知道如何在C中创建一个变量具有不同位大小的结构,例如: 我想创建一个结构,其中一个变量为8位整数,一个变量为16位布尔值,一个变量为8位布尔值,一个变量为32位浮点数,等等 我来自java,所以所有这些都非常混乱,谢谢。也许这个小示例可以回答您的问题: #include <stdint.h> #include <stdbool.h> #include <stdio.h> struct { uint8_t my_int_8; int16_
我来自java,所以所有这些都非常混乱,谢谢。也许这个小示例可以回答您的问题:
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
struct {
uint8_t my_int_8;
int16_t my_bool_16;
bool my_bool_8;
float my_float;
} test;
int main(const int argc, const char* argv[]) {
printf("sizeof(my_int_8)=%zu\n", sizeof(test.my_int_8));
printf("sizeof(my_bool_16)=%zu\n", sizeof(test.my_bool_16));
printf("sizeof(my_bool_8)=%zu\n", sizeof(test.my_bool_8));
printf("sizeof(my_float)=%zu\n", sizeof(test.my_float));
}
#包括
#包括
#包括
结构{
uint8_t my_int_8;
在我的书中;
bool my_bool_8;
浮起我的浮起;
}试验;
int main(常量int argc,常量char*argv[]){
printf(“sizeof(my_int_8)=%zu\n”,sizeof(test.my_int_8));
printf(“sizeof(my_bool_16)=%zu\n”,sizeof(test.my_bool_16));
printf(“sizeof(my_bool_8)=%zu\n”,sizeof(test.my_bool_8));
printf(“sizeof(my_float)=%zu\n”,sizeof(test.my_float));
}
这取决于编译器和平台。对于8位整数,也许可以使用“int8\u t”类型。对于32位浮点-“float”,但您必须阅读编译器的文档。\include
#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;
}
#包括
结构{
float d;//默认情况下初始化32位
无符号整数a:8;
bool my_bool_8;
bool my_bool_16;
}轻咬;
int main()
{
printf(“结构的大小为%lu\n”,大小为(半字节));
printf(“my_bool_8的大小为%zu\n”,sizeof(nibble.my_bool_8));
返回0;
}
16位布尔值在Java中是什么样子的?您是在询问位字段还是固定宽度整数类型?有特定大小的用例是什么?@Inrin university非常有用,谢谢。是否有一个页面可以让我看到我可以使用的所有不同长度?sizeof
生成的是size\u t
,而不是int
。