2011-08-28 65 views
-3

以下代码使用__interrupt作为中断服务程序。如何在下面的代码上发表评论 。c语言的中断

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

这是我得到解决的一段代码。我没有尝试过一个中断程序,但 已经读取,中断不是一个函数调用和中断标志用于设置 的中断服务例程。这是我对中断的理解。请帮我看看 了解有关中断的代码。

+2

这是什么*问题* –

+1

为什么你会像这样运行一个函数作为中断...? – bdonlan

+0

@oli:问题是评论这段代码。 – Angus

回答

2

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

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

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

我不知道任何这种综合信息会帮助你。我无法真正了解你在这里问的问题。也许如果你把事情缩小一点,我们可以提供更多的帮助。

+0

S:谢谢Eds。我来了解如何通过你的帖子中的函数指针来处理中断。我得到的问题是我发布的问题。我无法得到他们想要对上述代码发表评论。但是,我很开心,我已经知道你的帖子中断。这是非常清楚的。我会看一些文章,以了解更多关于它。谢谢。 – Angus