gpt4 book ai didi

c - 我如何指向 C 中函数的开始?

转载 作者:行者123 更新时间:2023-12-04 10:56:00 24 4
gpt4 key购买 nike

我正在为我的类(class)编写一个程序,它以非常简单的方式模拟操作系统处理中断的方式。

在 C 中,我有一个数组 INTERRUPT_TABLE[],我用它声明:

typedef void (*FN_TYPE)();

extern FN_TYPE INTERRUPT_TABLE[];

我想设置它,以便数组中的每个位置都指向我程序中其他地方包含的不同函数的开头 - 例如,INTERRUPT_TABLE[0] 应该指向开头函数handle_trap()

我以为我可以简单地说:INTERRUPT_TABLE[0] = handle_trap; 但这不起作用。我收到一个编译器错误,提示“kernel.c:134: error: subscripted value is neither array nor pointer”。有谁知道我做错了什么?

感谢您的帮助。

编辑:想通了!我的 INTERRUPT_TABLE 位于我尝试调用的函数之上,因此它们被自动声明为 int

最佳答案

定义“不工作”。那应该有效。我怀疑我们缺少一些上下文。您是否尝试通过在顶层某处说 INTERRUPT_TABLE[0] = handle_trap; 来初始化 INTERRUPT_TABLE?该特定语法在那里不起作用,但会在函数体中起作用。或者,您可以使用初始化语法:

  FN_TYPE INTERRUPT_TABLE[] = { handle_trap, ... };

关于c - 我如何指向 C 中函数的开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5143326/

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