c - 数据类型中的位数

标签 c sizeof

我有两个任务要分配,一个返回任何机器上 int 类型的位数。我想我会这样写我的函数:

int CountIntBitsF() {
    int x = sizeof(int) / 8;
    return x;
}

这样看起来对吗?

第二部分是用宏返回任意数据类型的任意位数,宏可以取自limits.h。我在我的机器上查找了 limits.h,还有 http://www.opengroup.org/onlinepubs/007908799/xsh/limits.h.html ,但我不认为我真的理解其中任何一个将如何返回任何数据类型的位数。有什么想法吗?谢谢。

最佳答案

The fundamental unit of storage is a char .它并不总是 8 位宽。 CHAR_BIT 在 limits.h 中定义并具有 char 中的位数。

关于c - 数据类型中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2090750/

相关文章:

C - 为什么这个函数将数组打印为 NULL 字符串?

c++ - for(;true;) 不同于 while(true)?

C - 函数中的结构分配

c - 如何打印任何函数的大小。之前有人问过这个问题,但答案不是粒子?

mysql - C 运行查询显示命令不同步?

c - x86, amd64 : Why SIGTRAP' ucontext instruction pointer does not point to related int3

c - c中的sizeof mmap,我们如何知道我分配了多少内存

c - sizeof 作为字符串维度的段错误

c++ - 将一个数组中的 char 值分配给另一个数组中的 char 值

c - VS 2010 中的枚举大小选项