C语言中不同的数据类型的长度和什么有关

[复制链接]
1618|4
 楼主| tmmdh 发表于 2015-4-7 09:39 | 显示全部楼层 |阅读模式
如题,比如说同样是int型和long型,他们的长度到底和编译器有关还是和机器有关?
如果和编译器有关的话,不同的软件有不同的编译器吗,比如说我用不同的软件编译同样一段代码,长度会不一样吗?
如果和机器有关,是和用的电脑有关还是电脑操作系统有关?不同的电脑、不同的操作系统编译的长度不一样吗?还是说和你选的DSP、ARM、FPGA芯片的型号有关?是不是不同型号的DSP、ARM、FPGA芯片他们的长度也不一样呢?
一连串的疑问,坐等大牛解答!
njyangzhifei 发表于 2015-4-7 10:56 来自手机 | 显示全部楼层
数据长度跟编译器和处理器都有关系。在学习C的时候,书上也会提醒你int类型变量在什么系统上是多长
cooldog123pp 发表于 2015-4-7 16:54 | 显示全部楼层
应该是和处理器有关,和编译软件也有关系。
i55 发表于 2015-4-8 10:04 | 显示全部楼层
主要是跟机器有关,没见过同一种机器用不同编译器int长度不一样的。
唯一例外的是x86,djgpp的int是16位的,而mingw的int是32位的,不过前者是针对8086的,后者是针对386及以后的,也许不算是同一种机器。
vivilzb1985 发表于 2015-4-8 20:51 | 显示全部楼层
这个是需要多注意的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部