sizeof(struct)

struct {

 signed  int bit0:1;

   signed  int bit1:1;

   signed  int bit2:1;

 signed  int bit3:1;

   signed  int bit4:1;

   signed  int bit5:1;

   signed  int bit6:1;

   signed  int bit7:1;

}bits;

请问sizeof(bits)是否是正确的表达式?

请问语句bits mybits; 的定义是否正确?如果不正确,要如何修改上述的结构定义才能使该语句正确?修改后的结构定义是否会影响sizeof(bits)的正确性?如果正确则该表达式的值为多少?如果将上述的结构中int类型改为char类型,此时sizeof(bits)的大小为多少?

答案:1)是正确的表达式,因为sizeof后面的内容可以是类型,也可以是变量。

2)该语句的定义不正确,因为此时的bits为一个变量;应该这样修改结构的定义

typedef struct {

 signed  int bit0:1;

   signed  int bit1:1;

   signed  int bit2:1;

 signed  int bit3:1;

   signed  int bit4:1;

   signed  int bit5:1;

   signed  int bit6:1;

   signed  int bit7:1;

}bits;

修改后sizeof(bits)表达式依然正确,其值为4;类型改为char后其值为1,注意该值是在VC环境中的32位程序中得到的值,在不同的编译器其值有可能不同,因此在编程时不能自己假定类似结构的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值