首页 论坛 原厂专区 ST MCU 请问32单片机和51单片机中short、int这些变量名是不是长度不一样? 比如

发帖 回复

[求助] 请问32单片机和51单片机中short、int这些变量名是不是长度不一样? 比如
3200 查看
5 回复
 楼主 | 发布于 2018-07-19 | 只看楼主
分享到:
请问32单片机和51单片机中short、int这些变量名是不是长度不一样?
比如51中的short长度是1,32中的长度是2?
(0 ) (0 )
回复 举报

回复于 2018-07-19 沙发

这个标准的一样的;
(0 )
评论 (0) 举报

回复于 2018-07-19 2#

对于这个问题,标准c中其实没有硬性的规定,总的来说,应该有以下几条规则


      (1)char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit

      (2)short和long类型的长度不相同

      (3)int类型通常同具体机器的物理字长相同

      (4)short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定, 但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。


(0 )
评论 (0) 举报

回复于 2018-07-19 3#

编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的。
(0 )
评论 (0) 举报

回复于 2018-07-22 4#

多谢分享!!!
(0 )
评论 (0) 举报

回复于 2018-07-22 5#

这个问题,最好看一下编译器的手册。


比如keil4的ARM编译器的手册说明了基本类型的长度


KEIL的C51 基本类型长度跟ARM不一样,查手册也能查出来。

我记得short 和 int都是16bit,long是32bit,没有64bit的基本类型。

(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部