概述
编程时遇到此类报错
error: aggregate value used where an integer was expected
printf("t1 = %dn",(unsigned char)t1);
原因是:
C语言的类型强制转换只有在数量类型之间才能进行转换,结构类型(包括 union,struct)不是数量类型(Scalar Type),无法进行强制转换;
数量类型包括算术类型和指针类型,算术类型由包括整数类型和浮点类型。
可以用union来代替数据转换
我一般用union代替类型转换
union {
long l;
struct {
long a:10;
loing b:10;
long c:12
}bits;
}
最后
以上就是整齐毛衣为你收集整理的关于C语言的强制转换的全部内容,希望文章能够帮你解决关于C语言的强制转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复