如何声明不同大​​小的变量

时间:2016-01-18 02:00:15

标签: c variables

您好我想在C中声明一个12位变量或者任何非传统的" size变量(不是2 ^ n的变量)。我该怎么做我到处看,我找不到任何东西。如果这不可能,您将如何在其自己的变量中保存某些数据。

3 个答案:

答案 0 :(得分:4)

使用位域:

sleep

答案 1 :(得分:4)

与Ada不同,C无法指定具有有限值范围的类型。 C依赖于具有实现定义特征的预定义类型,但具有某些保证:

  • 标准保证类型shortint至少保留16位,您可以使用其中任何一个来保存12位值,有符号或无符号。

  • 同样,类型long保证至少保留32位,并且long long至少包含64位。选择足够大的类型以供您使用。

  • int8_tint16_tint32_tint64_t<stdint.h>中定义的无符号对应项具有更精确的语义,但可能无法使用在所有系统上。类型int_least8_tint_least16_tint_least32_tint_least64_t保证可用,以及类似的int_fastXX_t类型,但它们不经常使用,可能因为名字有些麻烦。

  • 最后,您可以将位字段用于从164的任何位数,但这些位数仅作为结构成员使用。大小为1的位字段应声明为unsigned

答案 2 :(得分:2)

数据始终以字节组(每个8位)存储。

在C中,变量可以声明为1个字节(&#34; char&#34;或8位),2个字节(&#34;短&#34;许多计算机上的int为16位),以及4个字节(&#34;长&#34;许多计算机上的int是32位)。

在更高级别,您正在寻找&#34; bitfields&#34;。

或许可以看到:Facebook has a good example repo on this subject.