簡體   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