在下面的代码中,请您解释一下 return
语句中 (pgd_t)
后面的大括号,即 { val };
.这段代码是在转换 val
吗?使用表达式 { val };
的 return 语句做了什么?
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;
大括号是初始化结构的语法的一部分。强制转换语法允许您将结构创建为表达式的一部分,而不是在初始化变量时。
关于linux - 为什么这个 Linux 内核页表代码将返回值用大括号括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16290579/