gpt4 book ai didi

c - 与仅使用结构体相比,使用结构体指针有什么好处?

转载 作者:行者123 更新时间:2023-11-30 17:16:53 25 4
gpt4 key购买 nike

我对此有点困惑,因为我正在查看调度程序的一些代码,他们定义了一个 struct PCB(进程控制 block ),它基本上包含一堆有关正在运行的进程和结构队列的信息。队列基本上只管理进程执行的顺序,但偶尔也会跨队列移动进程(例如,将 PCB 从队列 1 移动到队列 2)。队列结构本质上定义为

struct Queue{
pcbptr front;
pcbptr back;
}

其中 pcbptr 定义为

typedef pcb * pcbptr

我有点困惑为什么在这种情况下要使用 pcbptr 而不是简单地定义队列来使用 pcb?

感谢您的帮助

最佳答案

原因很简单,就是因为时间。拥有指向不同结构的指针比按值拥有结构的副本要快得多。此外,使用队列的人可能希望修改 PCB,但如果 PCB 按值传递,他们将无法执行此操作。

另外,如果您问他们为什么不简单地使用 PCB * 而不是 typedef a PCB * 为 pcbptr,这只是命名约定。它们在功能上完全相同。

关于c - 与仅使用结构体相比,使用结构体指针有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com