是否可以在C中创建长度为一位的数据类型

艾门

基本上我想创建一个数据类型uint1_t那有可能吗?

我知道布尔数据类型的大小是一个字节。但是布尔值只需要一位。那么,C基本上只对布尔使用一位吗?如果是,那么它与其他七个有什么关系。在一个位足够的情况下使用八个位似乎浪费了空间。

乔纳森·莱夫勒

实际上不可能创建占用一位的类型。C中最小的可寻址单元是char(根据定义,它为1个字节,通常但不一定是8位长;它可能更长,但不允许比标准C中的8位短)。

您可以使用:

typedef _Bool uint1_t;

要么:

#include <stdbool.h>
typedef bool uint1_t;

但即使布尔变量仅存储值0或1false,它也将占用(至少)一个字节true

原则上,您可以使用位字段:

typedef struct
{
    unsigned int x : 1;
} uint1_t;

但这也将占用至少一个字节(可能与一个字节一样多unsigned int;通常为4个字节),您将需要使用它.x来访问该值。位域的使用是有问题的(它们的大多数方面是实现定义的,例如保存它的存储单元将占用多少空间)—不要使用位域。

包括Drew McGowenDraxFiddling Bits建议的修正

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在C ++中为矢量(或其他类似数据类型)编写用户迭代类?

来自分类Dev

是否可以在C ++中为矢量(或其他类似数据类型)编写用户迭代类?

来自分类Dev

是否可以在haskell中创建一个可以接受多个特定类型的递归数据类型?

来自分类Dev

是否可以在Haskell中创建一个函数,该函数返回数据类型的构造函数列表?

来自分类Dev

是否可以在Haskell中创建一个函数,该函数返回数据类型的构造函数列表?

来自分类Dev

最好的数据类型来存储一位数字?

来自分类Dev

一位数的MySQL数据类型-tinyint(1)或smallint(1)或int(1)

来自分类Dev

C ++中是否有实际的8位整数数据类型

来自分类Dev

是否可以在Java中创建自己的原始数据类型。像int,float,double

来自分类Dev

是否可以将一位的位向量转换为SMTLib2中的布尔变量?

来自分类Dev

C ++-检查单词是否为结构数据类型的回文

来自分类Dev

如何检查数据类型是否为数组?(C ++)

来自分类Dev

是否可以在PostgreSQL中数据类型为time的列中将当前时间设置为默认值?

来自分类Dev

是否无法在QML中创建地图数据类型?

来自分类Dev

当在 c 中对不同的输入数据类型使用相同的函数时,是否可以在被调用函数中检索参数的数据类型?

来自分类Dev

在C ++中为C库强制转换数据类型

来自分类Dev

是否可以在c ++中创建类型的向量?

来自分类Dev

是否可以从具有不同数据类型的键值表创建动态数据透视查询?

来自分类Dev

使用PHP在Excel工作表中显示长度为10的BigInt数据类型

来自分类Dev

您如何在“位级”上创建一个全新的数据类型?

来自分类Dev

如何创建一个可以在Java中存储多个数据类型对象的arraylist类

来自分类Dev

如何确保数据类型与C ++中的数据类型一样大

来自分类Dev

DB2是否遵守数据类型的最大长度?

来自分类Dev

如何直接在numpy数据类型中为16位无符号整数指定尾数?

来自分类Dev

如何直接在numpy数据类型中为16位无符号整数指定尾数?

来自分类Dev

如何用C编程语言以位为单位定义固定大小的数据类型

来自分类Dev

如何检查整数中是否只设置了一位?

来自分类Dev

调试时是否可以将局部变量显示为特定的结构/数据类型?

来自分类Dev

如何在C ++中交换数字的第一位和最后一位

Related 相关文章

  1. 1

    是否可以在C ++中为矢量(或其他类似数据类型)编写用户迭代类?

  2. 2

    是否可以在C ++中为矢量(或其他类似数据类型)编写用户迭代类?

  3. 3

    是否可以在haskell中创建一个可以接受多个特定类型的递归数据类型?

  4. 4

    是否可以在Haskell中创建一个函数,该函数返回数据类型的构造函数列表?

  5. 5

    是否可以在Haskell中创建一个函数,该函数返回数据类型的构造函数列表?

  6. 6

    最好的数据类型来存储一位数字?

  7. 7

    一位数的MySQL数据类型-tinyint(1)或smallint(1)或int(1)

  8. 8

    C ++中是否有实际的8位整数数据类型

  9. 9

    是否可以在Java中创建自己的原始数据类型。像int,float,double

  10. 10

    是否可以将一位的位向量转换为SMTLib2中的布尔变量?

  11. 11

    C ++-检查单词是否为结构数据类型的回文

  12. 12

    如何检查数据类型是否为数组?(C ++)

  13. 13

    是否可以在PostgreSQL中数据类型为time的列中将当前时间设置为默认值?

  14. 14

    是否无法在QML中创建地图数据类型?

  15. 15

    当在 c 中对不同的输入数据类型使用相同的函数时,是否可以在被调用函数中检索参数的数据类型?

  16. 16

    在C ++中为C库强制转换数据类型

  17. 17

    是否可以在c ++中创建类型的向量?

  18. 18

    是否可以从具有不同数据类型的键值表创建动态数据透视查询?

  19. 19

    使用PHP在Excel工作表中显示长度为10的BigInt数据类型

  20. 20

    您如何在“位级”上创建一个全新的数据类型?

  21. 21

    如何创建一个可以在Java中存储多个数据类型对象的arraylist类

  22. 22

    如何确保数据类型与C ++中的数据类型一样大

  23. 23

    DB2是否遵守数据类型的最大长度?

  24. 24

    如何直接在numpy数据类型中为16位无符号整数指定尾数?

  25. 25

    如何直接在numpy数据类型中为16位无符号整数指定尾数?

  26. 26

    如何用C编程语言以位为单位定义固定大小的数据类型

  27. 27

    如何检查整数中是否只设置了一位?

  28. 28

    调试时是否可以将局部变量显示为特定的结构/数据类型?

  29. 29

    如何在C ++中交换数字的第一位和最后一位

热门标签

归档