以下代码使用__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;
}
这是我解决的一段代码。我之前没有尝试过使用中断的程序,但是 已经读过中断不是函数调用,而是使用中断标志进行设置 中断服务程序。我对中断没有深入的了解。你怎么用它们?你为什么要用它们?
答案 0 :(得分:2)
我不确定你在这里问的确切。您使用的__interrupt
说明符不是C语言的一部分,而是语言的扩展。您需要告诉我们您正在编译的系统,以便为您的用例获得更具体的答案。
该代码似乎不是有效的中断函数。通常,函数的参数将是void
或中断发生时寄存器的状态。您通常也可以通过参数更改寄存器的值(并不总是安全的!)。从中断处理程序返回一个值并没有多大意义,因为它不会被用户代码直接调用。
中断可以通过多种方式处理,但一个简单的机制是将函数声明为中断处理程序,指向函数的指针将存储在某处,当特定CPU发生中断时,寄存器函数将是异步调用(因为当前线程可能没有发生中断)。
我不知道这些通才信息会对你有所帮助。我真的无法弄清楚你在这里问的是什么。也许如果你把事情缩小一点,我们可以提供更多帮助。