1

在下面的代码中,您能否解释一下语句中(pgd_t)的大括号。这是代码转换吗?使用表达式的 return 语句在做什么?return{ val };val{ val };

static inline pgd_t native_make_pgd(pgdval_t val)
    {
            return (pgd_t) { val };
    }
4

1 回答 1

1

如果您在函数之前查看,您会看到:

typedef struct { pgdval_t pgd; } pgd_t;

所以代码实际上等同于:

pgd_t temp = { val };
return temp;

大括号是初始化结构的语法的一部分。强制转换语法允许您将结构创建为表达式的一部分,而不是在初始化变量时。

于 2013-04-30T01:07:57.160 回答