当前位置:新励学网 > 秒知问答 > c语言文字所占字节数

c语言文字所占字节数

发表时间:2024-07-31 18:09:23 来源:网友投稿

c语言文字年(1)struct结构体变量大小等于结构体中的各个成员变量所占内存大小总和,union共用体变量大小等于共用体结构中占用内存最大的成员的内存大小;联合体中占用内存空间最大的字段加上填充字节(对齐字节后所需字节数)。

(2)枚举类型,指一个被命名的整型常数的集合。即枚举类型本质上是一组常数的集合体,只是这些常数有各自的命名。枚举类型是一种用户自定义数据类型。枚举变量由枚举类型定义的变量。枚举变量的大小,即枚举类型所占内存的大小。由于枚举变量的赋值,一次只能存放枚举结构中的某个常数。所以枚举变量的大小,实质是常数所占内存空间的大小(常数为int类型,当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节),枚举类型所占内存大小也是这样。

(3)指针其实就是地址,与它所指的基类型无关,更与C语言无关,只与机器有关.如果你的机器是16位寻址的,那指针就是16位的;2个字节,如果是32位寻址的,指针也是32位的;4个字节.如果寻址是64位的,指针也是64位,8个字节。

(4)类型16位32 位64位char111short int222int244unsigned int244float444double888long448long long888unsigned long448首先来看字符类型,这里单指char , char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,不管在哪种编译器下,均为1个字节。再来看浮点类型,C中的浮点类型有俩种,float和double,与整数不同的是,浮点数的长度适中的固定的,float占用4个字节,double占用8个字节。最后来看整型类型,查阅资料后发现虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI/ ISO制定):short 至少占用2个字节int 建议为一个机器字长;32位环境下为4字节;64位环境下为8字节short 的长度不能大于int, long 的长度不能小于intsizeof(a)=?解析:首先#pragma pack(2)强制设定为2字节对i4字节u 一个为13,一个为4,默认为4字节对齐;union占对齐后数据的最大字节大小,默认为13+3=4*4=16;但是,该处强制为2字节对齐,实际为13+1=2*7=14字节color枚举类型的实例 4字节4+14+4=22字节

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!