簡體   English   中英

這個指針符號是什么意思?

[英]What does this pointer notation mean?

#define START ((void (**)(int)) 0x0fff)

*START = &fun_foo();

我以前沒見過這個。 這里發生了什么? void(**)(int)是一個函數指針嗎?

void (**)(int)是一個指向函數的指針,該函數接受一個int並且不返回任何內容。

因此START是指向函數指針的指針,而*START是實際的函數指針,它被設置為指向fun_foo

在您的情況下, START是指向函數指針的指針(位於固定地址0x0fff )。

但正如我在本回答中所建議的那樣,出於可讀性的原因,您可能希望使用typedef來表示該指向函數的簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM