簡體   English   中英

((uint32_t *)arg)是什么意思? (上下文)

[英]What does ((uint32_t *)arg) mean? (The context is below)

int alpharomeo_probe(struct tty_struct *tty, uint32_t *arg)
{

    ((uint32_t *)arg) = 0xdeadbeef;  // This line
         <more code>

}

0xDEADBEEF(“死牛肉”)經常用於表示嵌入式系統中的軟件崩潰或死鎖。 DEADBEEF最初用於標記尚未初始化的新分配的內存區域 - 掃描內存轉儲時,很容易看到DEADBEEF。 它由IBM RS / 6000系統,32位PowerPC處理器上的Mac OS和Commodore Amiga使用,作為神奇的調試值。 在Sun Microsystems的Solaris上,它標記了釋放的內核內存。 在Alpha處理器上運行的OpenVMS上,按CTRL-T可以看到DEAD_BEEF。 DEC Alpha SRM控制台有一個后台進程可以捕獲內存錯誤,由PS識別為“BeefEater在0xdeadbeef上等待”。

所以把它當作arg = NULL; 無論如何,我很想知道代碼的來源。

那么在該代碼的上下文中它並不意味着什么。 這種語法表明arg被轉換為指向32位無符號int類型的指針,但在該示例中,它出現在左值的位置,其中轉換顯然不相關。 所以它會讓我相信它是一個過分熱心的括號用戶的聲明,聲明一個名為arg的變量,它是一個指向uint32類型的指針。 但是,arg已經宣布。 所以我猜測變量名稱被復制錯誤或者它在括號的錯誤一側。

Ans: - 指向包含參數的4字節位置。 第二行是將該值設置為deadbeef

暫無
暫無

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

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