编程论坛
注册
登录
编程论坛
→
C语言论坛
一小白看C primer plus产生的疑惑
cpp6
发布于 2021-07-05 14:06, 1340 次点击
我想请教一下各位大佬们:
在不同位的系统中,int32_t的含义是否都是32位的整数?
是否在16位系统也是这个含义?
还是说需要有stdint.h头文件才可以?
2 回复
#2
diycai
2021-07-05 15:39
typedef signed int int32_t;
一般是在头文件进行定义, 目的就是为了移植的方便性。
至于signed int在16位系统中占多少位,那是由编译器决定的,和CPU位数无关。
一般只有8位编译器的int是16位的,long int是32位的。
#3
rjsp
2021-07-06 09:25
在不同位的系统中,int32_t的含义是否都是32位的整数? ------ 当然,否则int32_t中为什么有个32
是否在16位系统也是这个含义? ----- 当然
还是说需要有stdint.h头文件才可以? ------ 为什么要说“还是说”,int32_t 等等都定义在 stdint.h 中
最后一个问题,我想了想,大约猜出来了:
你想用 32bits 的具符号整型,但是你的那个“16位系统”已经被淘汰几十年了,没有任何厂家再为它提供当代的C编译器或库,自然也就没有 stdint.h,没有 int32_t。
可以试试 long,如果不行的话,查查你那个古老编译器的说明书,说不定会提供什么私有的整数类型。
1