c - C结构,具有不同位大小的变量
问题描述
我不确定如何在 C 中创建一个具有不同位大小的变量的 Struct,例如:
我想创建一个结构,其中一个变量为 8 位整数,一个变量为 16 位布尔值,一个为 8 位布尔值,一个为 32 位浮点数等。
我来自java,所以这一切都很混乱,谢谢。
解决方案
#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;
}
推荐阅读
- python-3.x - 使用 Jedi 的 Spyder 4 代码自动完成在编辑器中(仍然)很慢
- python - scipy 和 excel 结果在 T 分布中不同
- java - 对新的对应对象使用 Java 多态性(StringBuffer 或 StringBuilder)
- javascript - 在 MOBILE 上将其他人推开的可拖动元素
- c++ - 静态大小的 Rcpp 空列表会比 list.push_back() 更有效吗?
- angular - 角度 8 秒表
- python - 烧瓶测试路线'/'
- unreal-engine4 - 如何从游戏视图访问小部件的蓝图
- r - 如何计算> 1000列的数据集中每列有多少条目?
- sapui5 - SAPUI5. 我的收件箱。附件异步更新