[英]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.