繁体   English   中英

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

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

上下文

阅读一些内核代码。

问题

我无法理解这条线的含义

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

更重要的是,这意味着什么

{0,PAGE_SIZE}

对我而言,它看起来不像是逗号的函数。

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

它是函数还是演员? 支架部分是什么意思? 似乎对我如此复杂,但绝对有意义。

(int[2]) { 0, PAGE_SIZE }

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

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

请注意,您可以获取复合文字的地址,因为它们是左值。 见例如。 这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM