gcc大小的类型

时间:2012-10-09 11:05:44

标签: c gcc portability

由于类型的大小在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

3 个答案:

答案 0 :(得分:3)

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

  • int32_t正好为32位
  • int_fast32_t表示最快的数据类型,至少有32位

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

答案 1 :(得分:3)

它本身并不在GCC文档中,而是在每个目标系统的ABI文档中。例如。对于Linux x86_64,ABI文档在此处:http://www.x86-64.org/documentation/abi.pdf

GCC支持的每个ABI的详细信息当然都是在GCC源代码中编写的,例如, GCC内部手册第17章http://gcc.gnu.org/onlinedocs/gccint/Target-Macros.html

答案 2 :(得分:2)

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

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