c语言中的中断

c语言中的中断,c,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; } #包括 #定义PI 3.14 __中断双计算区(双半径) { 双面积=圆周率*半径*半径;

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

#include<stdio.h>
#define PI 3.14
__interrupt double compute_area(double radius)
{
    double area=PI*radius*radius;
    printf("\narea=%f",area);
    return area;
}
#包括
#定义PI 3.14
__中断双计算区(双半径)
{
双面积=圆周率*半径*半径;
printf(“\narea=%f”,面积);
返回区;
}
这是我用来解决问题的代码。我以前没有尝试过使用中断的程序,但是 读到中断不是函数调用,中断标志用于设置
中断服务程序。我对中断没有深入的了解。你如何使用它们?你为什么要用它们?

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

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

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


我不知道这些通才的信息对你有什么帮助。我真的不明白你在问什么。也许如果你把事情缩小一点,我们可以提供更多的帮助。

那你为什么要把这样的函数作为中断来运行…?@bdonlan:我不知道中断函数应该是什么样子。但我找到了这个程序来解决。通读了中断的相关内容,知道它不能作为正常函数调用打电话。一个“解决一个程序”到底是怎么回事?