我正在跟随工会
union data { uint64_t val; struct{ .... } };
我有一个功能
func(union data mydata[]) { printf("%llu",(uint64_t)mydata[0]); // Here is the error }
error: aggregate value used where an integer was expected
解决方法
您无法访问索引联合数组的字段:mydata [0]是联合数据类型的值,不能转换为uint64_t.
您需要访问正确的union成员:
printf("%" PRIu64,mydata[0].val);
选择uint64_t值.不需要演员.
另外:使用PRIu64可移植地打印64位值,您不能假设%llu是正确的格式说明符.