3

由于类型的大小在 C 的标准中并不接近,如果没有它们的最大和最小大小,我想知道在哪里可以找到 gcc 如何解释它。

在 gcc 文档中他们将采用的类型的大小在哪里?有指定吗?我找不到该信息,所以我想要一些帮助。

提前致谢。

--- 结论 ---

查看您所有的评论,我终于得到了这个链接中的信息来争论答案

5.2.4.2.1 整数类型的大小:http ://www.open-std.org/jtc1/sc22/wg14/www/docs/n1336.pdf

http://gcc.gnu.org/onlinedocs/gccint/Type-Layout.html

4

3 回答 3

3

根据其他人所说,您可以看到limits.h。然而,做自己的更好方法是说出你的意思。因此#include <stdint.h>,您可以使用

  • int32_t正好 32 位
  • int_fast32_t对于至少具有 32 位的最快数据类型

但是,如果要存储数组偏移量,则应使用size_tor ssize_t; 同样对于足够大以存储指针的整数数据类型,使用intptr_t.

于 2012-10-09T11:11:56.033 回答
3

它本身不在 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 章

于 2012-10-09T11:12:55.050 回答
2

对于最小值和最大值,您可以查看 limits.h(或 C99 及更高版本中的等效项 - stdint.h,其中包括 limits.h)。

对于类型的大小,只需使用 sizeof();

于 2012-10-09T11:08:16.413 回答