C语言数据类型所占字节是和运行的机器位数有关还是编译器有关

如题所述

1)C语言一般指的是ANSI C的标准,对应的处理器分别是32位和64位的。
2)类型分为内置类型和自定义类型(非内置类型)
内置类型指的是无需声明就可使用的类型,比如char,double,int等。
自定义类型指的是使用前必须声明的,如struct StructName{};结构类型,int a[5];数组类型以及enum Color{};枚举类型等。未经声明的类型不可使用
3)ANSI C只对内置类型的大小进行了规范:
char |double| folat |int |long int| pointer
64bits 1 8 4 4 8 8
32bits 1 8 4 4 4 4
从上表可以看出,对于前三者,大小是统一的,只有long int 和pointer(指针)在不同的机器上占用了不同的大小。他们的规则是,long int和pointer的大小等于机器位长(8位一个字节).最后说明一点,unsigned的关键字和类型组合和该类型的大小相同,因为有符号和无符号只对编译器有效,机器对他一无所知。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-22
操作系统是不管这些的,int占多少字节,double占多少字节,这些东西有一些是c语言标准规定的,有一些规定的不是特别死的,就由编译器决定。

C语言数据类型所占字节是和运行的机器位数有关还是编译器有关
从上表可以看出,对于前三者,大小是统一的,只有long int 和pointer(指针)在不同的机器上占用了不同的大小。他们的规则是,long int和pointer的大小等于机器位长(8位一个字节).最后说明一点,unsigned的关键字和类型组合和该类型的大小相同,因为有符号和无符号只对编译器有效,机器对他一无所知。

C语言中不同的数据类型的长度和什么有关
和编译器有关。每种类型占用的字节数,是和编译器直接相关的,也就是常说的编译器的字长。以整型系列的类型,char, short, int, long为例:1 16位字长:对于16位编译器,char占1字节,short占2字节,int占2字节,long占4字节。2 32位字长:对于32位编译器,char 占1字节,short占2字节,int占...

c语言int类型占的字节数因不因机子是64位还是32位的而改变啊?
是和编译器的位数有关,而不是操作系统或者CPU的位数 例如:在16位编译器(例如:TC)上,int型占2个字节 在32位编译器(例如:VC,GCC,CFree等)上,int型占4个字节

在c语言中不同数据类型的长度是由什么决定的
归根结底都是A。或者说是编译器。

C语言(收藏系列)——常用数据类型所占用的字节数
在C语言中,数据类型的字节数量与机器字长及编译器紧密相关。要了解特定数据类型在编译器内部的字节数,可通过以下方式获取:首先,查看编译器选项以确定是16位、32位还是64位编译器。当前,主流编译器多为32位和64位版本。其次,利用sizeof()函数获取数据类型的字节数。sizeof是C语言中的保留关键字,...

C语言中,各种类型的整型数据在内存中都占用4个字节吗
不是。C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。整型类型在虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI\/ISO制定):short至少占用2个...

c语言中,不同的平台上对不同数据类型分配的字节数是不同的?这个是跟...
和自己电脑是多少位没关系,和编译器有关系,不同位的编译器一次能吞吐的字节数不同,所以不同的编译器对于相同的数据类型分配的字节可能不同

为什么java中的int型占4个字节,而c语言中的int却占2个字节, 一个整型...
首先c语言的int类型的字节数并不是固定的,它与编译器相关,这也是c语言这类语言的一个缺点,就是它与机器有关,你在这台机器上的c代码能正常编译运行,换一台机器可能就有问题。而java的一个最大的优点是跨平台,就是所谓的Write once,run everywhere,同一份java代码编译成功后可以到处运行。但...

c语言int占几个字节
int所占的字节数是根据要运行的系统架构决定的,编译器决定了程序要输出的对应架构,对于不同的架构,int占的字节数不同。1、16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个...

C语言中int型字长和什么有关
这个和操作系统有关,一般int的长度都会采用机器字长,比如win32系统,int占4字节,32位;如果是64位主机,int占64位,但这不是一定的,还要看编译器类型等因素。在C语言中,double、long、unsigned、int、char类型数据所占字节数和机器字长及编译器有关系: 所以,int,long int,short int的宽度都...

相似回答