繁体   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