参考这个博客:https://blog.csdn.net/swj9099/article/details/81359690
关于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;
long b:10;
long c:12
}bits;
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/swj9099/article/details/81359690