C语言中的interrupt是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的interrupt是怎么回事相关的知识,希望对你有一定的参考价值。

今天看以程序,看到
void interrupt ( *oldhandler)(__CPPARGS);
搞不明白是怎么意思
C语言中好像没有关键字interrupt吧,interrupt有什么用,oldhandler又是什么意思?

希望有人能满足我的求知欲
预谢!!!!!

函数名称:interrupt
头文件:dos.h
函数用途:申明一个函数为中断函数,该中断函数的中断号为intr
函数原型:void interrupt(*getvect(int intr)) (void)
其它说明:以上不是一个函数,实际上是说明了中断函数的格式,比如我们要将一个函数fun()说明成中断函数,可写成: void interrupt( *fun )();

具体不知道,上网找找.
参考技术A 二楼的说得很对。它是一个中断处理函数,与一般的函数的区别在于他被调用的方式。一般的函数是由其上一层函数调用而得到执行。而中断函数是是外围设备触发它执行的。比如说:spi接收到一字节的数据、adc采样完成、定时器发生溢出等等。一旦这些事件发生了,只要中断处于使能状态,就会触发对应的中断。
不管主程序执行到什么地方,cpu都会暂停它并立即执行这种中断处理函数。中断处理函数执行完成后又恢复之前的程序位置继续执行。
中断的产生,不是由调用引起的,是由外界触发的。就像,有人敲门,你就要去开门,这不等于你去开门了,就一定有人敲门。
另,中断函数不能被直接调用,否则会出错。
参考技术B interrupt可以看成是int定义为整型
*oldhandler 从你的程序上看来是指针
oldhangler 就是地址名

以上是关于C语言中的interrupt是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

linux中执行c语言程序,段错误是怎么回事啊??谢谢!!!

c语言的堆栈是怎么回事!!

单片机C语言中,中断子程序后面为啥要加interrupt这个单词?

c语言中graphic.h库函数不能用,怎么回事

C语言编程中经常会出现未定义的是怎么回事??

C语言 UDP中revcfrom怎么从阻塞中跳出?