在c中找到int的位宽; 最佳跨平台方法

jay*_*jay 2 c size int bit width

我需要知道正在运行我的代码的系统中的本机int的宽度(大小),以位为单位.

我可以使用"sizeof"来获取chars中的宽度,但是,据我所知,C规范中没有任何地方可以为char分配特定的位数.

那么找到int的位宽的最佳跨平台方法是什么?

Mar*_*n R 8

CHAR_BIT(from <limits.h>)是a中的位数char,所以

sizeof(int) * CHAR_BIT
Run Code Online (Sandbox Code Playgroud)

是你在找什么.

CHAR_BIT 在C99标准的"5.2.4.2.1整数类型的大小"中指定.

补充:开放组规范可能很有趣

状态:

限制{CHAR_BIT},{SCHAR_MAX}和{UCHAR_MAX}的值现在分别为8,+ 127和255.