其他分享
首页 > 其他分享> > error:在预期整数时使用的聚合值

error:在预期整数时使用的聚合值

作者:互联网

我正在跟随工会

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是正确的格式说明符.

标签:c-3,linux,printf,unions,format-specifiers
来源: https://codeday.me/bug/20190714/1459900.html