d不能用非常指针赋值常又

原文

typedef union value_u {
    void *p;
} value_t;
typedef struct data_s {
    void *p;
} data_t;
void fn()
{
    value_t a;
    const value_t b;
    // 错误:无法隐式转换`const(value_u)`类型的b表达式为`value_u`
    a = b;
    data_t aa;
    const data_t bb;
    // 错误:无法隐式转换`const(data_s)`类型的bb表达式为`data_s`
    aa = bb;
}

-如果把"void*p"设为非指针类型,则错误消失
-如果把变量更改为使用原始名称而不是typedef,则错误消失
修复

posted @ 2022-09-22 10:40  zjh6  阅读(17)  评论(0)    收藏  举报  来源