gpt4 book ai didi

c - *(void **) &(int[2]){0,PAGE_SIZE};意义?

转载 作者:太空狗 更新时间:2023-10-29 17:10:33 30 4
gpt4 key购买 nike

上下文

阅读一些内核代码。

问题

我不明白这行是什么意思

*(void **) &(int[2]){0,PAGE_SIZE};

还有更多,这是什么意思

{0,PAGE_SIZE}

对我来说,它看起来不像是带有那个逗号的函数。

这段代码可能发生了什么?我不明白这里的间接寻址。

它是函数还是强制转换?括号部分是什么意思?对我来说似乎很复杂,但绝对有意义。

最佳答案

(int[2]) { 0, PAGE_SIZE }

是一个表达式(称为复合文字),其值是两个 int 的数组。获取此数组的地址,将其转换为 void **,然后取消引用。

最终结果是将数组内容重新解释为指向 void 的指针。

请注意,您可以获取复合文字的地址,因为它们是左值。见例如。 this question .

关于c - *(void **) &(int[2]){0,PAGE_SIZE};意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855756/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com