下面的代码使用了 |
您所在的位置:网站首页 › areax › 下面的代码使用了 |
__interrupt double compute_area (double radius) { double area = PI * radius * radius; printf("\nArea = %f", area); return area; } 答:这个函数有如下的错误: 1) ISR 不能返回一个值。 2) ISR 不能传递参数。 3) 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。 4) 与第三点一脉相承,printf()经常有重入和性能上的问题。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |