关于C语言的强制转换

编程时遇到此类报错

error: aggregate value used where an integer was expected
 printf("t1 = %d\n",(unsigned char)t1);

原因是:
C语言的类型强制转换只有在数量类型之间才能进行转换,结构类型(包括 union,struct)不是数量类型(Scalar Type),无法进行强制转换;

数量类型包括算术类型和指针类型,算术类型由包括整数类型和浮点类型。

 

可以用union来代替数据转换

我一般用union代替类型转换

union {
     long l;
     struct {
       long a:10;
       loing b:10;
       long  c:12
}bits;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值