所以我想知道为什么在检查kmalloc的返回值时,我们不使用像这样的“可能”提示:void *ptr = kmalloc(size, GFP_KERNEL) if (unlikely(!ptr)) return err;当然,我的假设是,凯马洛克并不经常失败。我很难记起上次失败的情景。基于此,这对编译器不是一个有用的建议吗? 最佳答案 这样做可能不会有什么坏处,但是除非你在一个紧密的循环中运行malloc,否则与malloc本身的成本相比,它对运行时的影响可能微不足道。