数据类型中的位数

Cry*_*tal 4 c sizeof

我有两个任务分配,一个返回任何机器上int类型的位数.我以为我会像这样编写我的函数:

int CountIntBitsF() {
    int x = sizeof(int) / 8;
    return x;
}
Run Code Online (Sandbox Code Playgroud)

那看起来不错吗?

第二部分是用宏返回任何数据类型的任何位数,宏可以从limits.h中获取.我查看了我的机器上的limits.h,还有http://www.opengroup.org/onlinepubs/007908799/xsh/limits.h.html,但我认为我真的不明白其中任何一个会返回任何数据类型中的位数.有什么想法吗?谢谢.

Jus*_*ith 15

存储的基本单位是char.它并不总是8位宽.CHAR_BIT在limits.h中定义,并具有char中的位数.


Ign*_*ams 8

*,不是/.

至于第二部分,请参阅"数值限制"部分.