gpt4 book ai didi

c - 为什么有必要将中断处理函数标记为静态?

转载 作者:IT王子 更新时间:2023-10-29 00:26:16 24 4
gpt4 key购买 nike

在阅读 Robert Love 的《Linux 内核开发》时,我在第 119 页发现:

The interrupt handler is normally marked static because it is never called directly from another file.

例如:

static irqreturn_t intr_handler(int irq, void *dev)

但为什么会这样呢?我怀疑这个函数是否会被内核调用,如果我们将其设为静态,那么内核将如何调用它?

最佳答案

根据 this ,该函数的使用方式是通过向内核“注册”它。也就是说,有一个诸如 InstallIntHdlr 的函数,您可以调用该函数并将指针传递给您的处理程序。然后内核可以使用该指针来调用函数本身。

我的猜测是 static 被用作强制正确使用中断处理程序的一种方式,尽管我对此不确定。也就是说,由于无法从其他文件调用静态函数,因此它会强制您将指针传递给它而不是直接调用它。

关于c - 为什么有必要将中断处理函数标记为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780941/

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