c语言中断

时间:2011-08-28 18:01:00

标签: c

以下代码使用__interrupt作为中断服务例程。如何评论 在下面的代码上。

#include<stdio.h>
#define PI 3.14
__interrupt double compute_area(double radius)
{
    double area=PI*radius*radius;
    printf("\narea=%f",area);
    return area;
}

这是我解决的一段代码。我之前没有尝试过使用中断的程序,但是 已经读过中断不是函数调用,而是使用中断标志进行设置 中断服务程序。我对中断没有深入的了解。你怎么用它们?你为什么要用它们?

1 个答案:

答案 0 :(得分:2)

我不确定你在这里问的确切。您使用的__interrupt说明符不是C语言的一部分,而是语言的扩展。您需要告诉我们您正在编译的系统,以便为您的用例获得更具体的答案。

该代码似乎不是有效的中断函数。通常,函数的参数将是void或中断发生时寄存器的状态。您通常也可以通过参数更改寄存器的值(并不总是安全的!)。从中断处理程序返回一个值并没有多大意义,因为它不会被用户代码直接调用。

中断可以通过多种方式处理,但一个简单的机制是将函数声明为中断处理程序,指向函数的指针将存储在某处,当特定CPU发生中断时,寄存器函数将是异步调用(因为当前线程可能没有发生中断)。

我不知道这些通才信息会对你有所帮助。我真的无法弄清楚你在这里问的是什么。也许如果你把事情缩小一点,我们可以提供更多帮助。