鱼C论坛

 找回密码
 立即注册
查看: 4214|回复: 4

有关结构共同体的问题

[复制链接]
发表于 2012-8-24 10:30:28 | 显示全部楼层 |阅读模式
1鱼币
  1. #include<stdio.h>
  2. int main()
  3. {
  4. struct date
  5. { int year ,month,day;
  6. }today;
  7.     printf("%d\n",sizeof(struct date));
  8. return 0;
  9. }
复制代码
上面代码在VC++6.0 上运行是12,但练习题答案是6,那么练习题是根据什么来判断是6呢?

最佳答案

查看完整内容

在C标准中规定,long为4字节,short为2字节,short长度不能大于int,int不能大于long,也就是说,int可能为2字节,也可能为4字节,要看编译器的规定,VC规定是4字节,练习题大概是按2字节算的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-24 10:30:29 | 显示全部楼层
在C标准中规定,long为4字节,short为2字节,short长度不能大于int,int不能大于long,也就是说,int可能为2字节,也可能为4字节,要看编译器的规定,VC规定是4字节,练习题大概是按2字节算的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-24 11:57:02 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 2012-8-24 12:38 编辑

习题答案估计是错的
看了下楼下的才想起来比较古老的编译器INT占两字节
VC规定int占4个字节,3个int
3*4=12

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-24 18:51:34 | 显示全部楼层
这要看你在什么环境下了 如果在32位  那么int 是占 四字节 如果是在16 位  那么int 占 2 位 这就是取决了 编译器和 编译环境了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-24 19:44:11 | 显示全部楼层
编译器的问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表