由于类型的大小在 C 的标准中并不接近,如果没有它们的最大和最小大小,我想知道在哪里可以找到 gcc 如何解释它。
在 gcc 文档中他们将采用的类型的大小在哪里?有指定吗?我找不到该信息,所以我想要一些帮助。
提前致谢。
--- 结论 ---
查看您所有的评论,我终于得到了这个链接中的信息来争论答案
5.2.4.2.1 整数类型的大小:http ://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf
由于类型的大小在 C 的标准中并不接近,如果没有它们的最大和最小大小,我想知道在哪里可以找到 gcc 如何解释它。
在 gcc 文档中他们将采用的类型的大小在哪里?有指定吗?我找不到该信息,所以我想要一些帮助。
提前致谢。
--- 结论 ---
查看您所有的评论,我终于得到了这个链接中的信息来争论答案
5.2.4.2.1 整数类型的大小:http ://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf
根据其他人所说,您可以看到limits.h。然而,做自己的更好方法是说出你的意思。因此#include <stdint.h>
,您可以使用
int32_t
正好 32 位int_fast32_t
对于至少具有 32 位的最快数据类型但是,如果要存储数组偏移量,则应使用size_t
or ssize_t
; 同样对于足够大以存储指针的整数数据类型,使用intptr_t
.
它本身不在 GCC 文档中,而是在每个目标系统的 ABI 文档中。例如对于 Linux x86_64,ABI 文档在这里:http ://www.x86-64.org/documentation/abi.pdf
GCC 支持的每个 ABI 的详细信息当然都在 GCC 源代码中进行了编码,请参见http://gcc.gnu.org/onlinedocs/gccint/Target-Macros.html的 GCC 内部手册中的第 17 章
对于最小值和最大值,您可以查看 limits.h(或 C99 及更高版本中的等效项 - stdint.h,其中包括 limits.h)。
对于类型的大小,只需使用 sizeof();