C语言中的int类型的范围是由什么决定的

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:37   659   0

C语言中的int类型的范围是由什么决定的

在 K&R 经典教材 The C Programming Language 的2.2节中,对 int 类型是这样描述的

an integer, typically reflecting the natural size of integers on the host machine

意思是反映了机器整数类型的 natural size,可是,

这个 natural size 又是什么意思呢?

书中后来在谈到 short, int, long 的关系时,又说,这些类型由编译器根据机器自由选择合适的大小,但是 short 和 int 至少 16 位,long 至少 32 位。

这里的问题是

编译器是根据什么决定类型大小呢?

后面书中又提到,这些类型啊,在<limits.h>中都有,我就在ubuntu下查看了 /usr/include/limits.h,里面确实提到

/* Minimum and maximum values a `signed int' can hold.  */
#  define INT_MIN   (-INT_MAX - 1)
#  define INT_MAX   2147483647

但是,这也是一种定义,还是没有说出为什么,我现在想知道的是

为什么

于是,我想起了那些年扫过的 《深入理解计算机系统》,英文名叫 Computer Systems: A Programmer's Perspective,速查之!

在2.1节的开头提到,字节(byte)是最小可寻址单位,大多数计算机使用8位的块。 啊,8位,那位又是什么呢?嗯,位是一种存储结构,一个位只能存储0或者1。

后面2.1.2节中提到

每台计算机都cfjcfrjn:n_VB8?_jnS>c&7"G_jVjJ3^*RcfrJǖ_Vcfrcf>(ее>_VkbB#jC6(ееvws((%

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP