Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在下面的代码中,您能否解释一下语句中(pgd_t)的大括号。这是代码转换吗?使用表达式的 return 语句在做什么?return{ val };val{ val };
(pgd_t)
return
{ val };
val
static inline pgd_t native_make_pgd(pgdval_t val) { return (pgd_t) { val }; }
如果您在函数之前查看,您会看到:
typedef struct { pgdval_t pgd; } pgd_t;
所以代码实际上等同于:
pgd_t temp = { val }; return temp;
大括号是初始化结构的语法的一部分。强制转换语法允许您将结构创建为表达式的一部分,而不是在初始化变量时。