首页 > 解决方案 > 我可以在 c 编程语言中创建一个只有一位的变量吗?

问题描述

我是 C 的新手。我想知道我可以在 c 编程语言中创建一个只有一位的变量吗?或具有三位的变量。

例如 :

variable_type var1=0; /* 1 bit */

printf("%d",sizeof(var1)); /* output= 0.125 */

variable_type var2=5;  /* 3 bit ,binary= 101 */

printf("%d",sizeof(var2)); /* output=0.375 */

上面的“sizeof()”符号可能是错误的。我做了这样的事情来解释自己。我想你知道。1 字节 = 8 位。

谢谢。

标签: cvariablesbytebit

解决方案


我可以在 c 编程语言中创建一个只有一位的变量吗?

不。

对象是CHAR_BIT位宽的正倍数。 CHAR_BIT至少为 8 位。(不常见的实现有CHAR_BIT > 8。)

一个struct对象可以有位域。下面,成员bt是 1 位,但struct one_bit由于填充满足上述要求,所以位更多。

struct one_bit {
  unsigned bt:1;
}

笔记:

_Bool就好像它只有一个值位一样,但与任何其他对象一样,_Bools不能小于CHAR_BIT位。@约翰·布林格


推荐阅读