int alpharomeo_probe(struct tty_struct *tty, uint32_t *arg)
{
((uint32_t *)arg) = 0xdeadbeef; // This line
<more code>
}
答案 0 :(得分:2)
0xDEADBEEF(“死牛肉”)经常用于表示软件 嵌入式系统中的崩溃或死锁。 DEADBEEF最初用于 标记尚未初始化的新分配的内存区域 - 扫描内存转储时,很容易看到DEADBEEF。它由IBM RS / 6000系统,Mac OS在32位PowerPC处理器和 Commodore Amiga是一个神奇的调试值。在Sun Microsystems上 Solaris,它标志着释放的内核内存。在Alpha上运行的OpenVMS上 处理器,按CTRL-T可以看到DEAD_BEEF。 DEC Alpha SRM控制台有一个后台进程可以捕获内存错误, 被PS确定为“BeefEater等待0xdeadbeef”。
所以把它当作arg = NULL; 无论如何,我很想知道代码的来源。
答案 1 :(得分:0)
在该代码的上下文中,它并不意味着什么。这种语法表明arg被转换为指向32位无符号int类型的指针,但在该示例中,它出现在左值的位置,其中转换显然不相关。所以它会让我相信它是一个过分热心的括号用户的声明,声明一个名为arg的变量,它是一个指向uint32类型的指针。但是,arg已经宣布。所以我猜测变量名被错误地复制了或者它在括号的错误一侧。
答案 2 :(得分:0)
并且: - 指向包含参数的4字节位置。第二行是将该值设置为deadbeef