问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么主函数和中断函数不能调用同一函数

发布网友 发布时间:2022-04-23 14:00

我来回答

2个回答

热心网友 时间:2022-04-24 16:45

中断服务函数ISR不被任何函数调用,ISR和main可以看作是并行发生的。

函数式编程:
  函数式编程是种编程典范,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。
  在经常被引用的论文 “Why Functional Programming Matters”(请参阅 参考资料) 中,作者 John Hughes 说明了模块化是成功编程的关键,而函数编程可以极大地改进模块化。在函数编程中,编程人员有一个天然框架用来开发更小的、更简单的和更一般化的模块, 然后将它们组合在一起。函数编程的一些基本特点包括:
  支持闭包和高阶函数,支持惰性计算(lazy evaluation)。使用递归作为控制流程的机制。加强了引用透明性。没有副作用。我将重点放在在 Java 语言中使用闭包和高阶函数上,但是首先对上面列出的所有特点做一个概述。
闭包和高阶函数:
  函数编程支持函数作为第一类对象,有时称为 闭包或者 仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样操作的对象。与此类似,FP 语言支持 高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起使得可以用优雅的方式进行模块化编程,这是使用 FP 的最大好处。
惰性计算:
  除了高阶函数和仿函数(或闭包)的概念,FP 还引入了惰性计算的概念。在惰性计算中,表达式不是在绑定到变量时立即计算,而是在求值程序需要产生表达式的值时进行计算。延迟的计算使您可以编写可能潜在地生成无穷输出的函数。因为不会计算多于程序的其余部分所需要的值,所以不需要担心由无穷计算所导致的 out-of-memory 错误。一个惰性计算的例子是生成无穷 Fibonacci 列表的函数,但是对 第 n 个Fibonacci 数的计算相当于只是从可能的无穷列表中提取一项。
递归:
  FP 还有一个特点是用递归做为控制流程的机制。例如,Lisp 处理的列表定义为在头元素后面有子列表,这种表示法使得它自己自然地对更小的子列表不断递归。
引用透明性:
  函数程序通常还加强引用透明性,即如果提供同样的输入,那么函数总是返回同样的结果。就是说,表达式的值不依赖于可以改变值的全局状态。这使您可以从形式上推断程序行为,因为表达式的意义只取决于其子表达式而不是计算顺序或者其他表达式的副作用。这有助于验证正确性、简化算法,甚至有助于找出优化它的方法。
副作用:
  副作用是修改系统状态的语言结构。因为 FP 语言不包含任何赋值语句,变量值一旦被指派就永远不会改变。而且,调用函数只会计算出结果 ── 不会出现其他效果。因此,FP 语言没有副作用

热心网友 时间:2022-04-24 18:03

  您好,我来为您解答:
  这涉及到picc编译时对临时变量的空间分配算法。
  一般情况下,为了方便处理,中断中用到的临时变量的空间分配是独立于其他地方使用的临时变量。
  这个可以看一下编译后的assembling list中的中断处理汇编代码就知道。

  如果中断函数和其他地方同时调用一个函数,那么除非该函数不需要在内部分配临时变量,
  否则就会出错。

  我觉得对于大部分的应用,都可以通过其他方法解决同时调用一个函数的问题,最多浪费一点代码空间了。
  转载,仅供参考。
  如果我的回答没能帮助您,请继续追问。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国哪个朝代中央集权最严重? 哪个朝代的建国最合法?历史学家认为汉朝和明朝,但清朝皇帝不同意_百 ... 设中国银行的即期汇率牌价USD/RMB6.2110~6.2160,三个月远期为330~360... 美国和日本的年利率分别是4%和2%,即期汇率是JPY/$=120,如果利率平价条... 询问广大的QQ书签爱好者:请问QQ书签要怎么开通啊..? QQ书签是怎么开通的``? QQ书签怎么开通的啊? QQ书签怎么开通的吖? 学装修木工要多久 装修木工多久才能学会 智家小果机顶盒怎么用 为什么打开Excel没有修改,退出时仍提示保存?? 如何正确使用机顶盒 联通机顶盒怎么用 java中有拷贝构造函数的概念吗?方法传递对象时一般如何避免副作用? sql server 在函数内对带副作用的运算符 'INSERT' 的使用无效 福美多avs+地面数字电视机顶盒怎么用? 随机变量是什么? 那些不是随机变量 举一些例子 电视机用机顶盒怎么使用的? 关于函数传递有副作用参数的问题 scanf与getchar的副作用以及可以替代的函数 机顶盒怎么用,要接网线才能用吗? scala函数副作用如何理解 在c++语言中,如果函数非正常结束,有啥副作用。return 1和return –1啥意思 联通网络电视机顶盒怎么用? 函数的副作用和函数没有任何返回值有什么联系 C语言里的side effect是什么意思 全网通电视机顶盒怎么用? C语言中调用函数的副作用具体指啥? 手机充电,快充和正常充电哪个对电池寿命影响大? 跪求C++ 中“函数的副作用”是什么意思啊? 机顶盒该怎么使用? 请教:sql函数 传递参数给 top ,不能运行, tips:在函数内对带副作用的运算符 'EXECUTE STRING'的使用无效 机顶盒是什么。怎么用。谢谢 C# 中计算角度的三角函数时提示此表达式可导致副作用,将不会对它进行计算。 网络机顶盒怎么用? es6中箭头函数this指向理解? 函数式编程的特性 C语言中“语句”和“指令”有什么区别? 黑头怎么根除? 怎样去黑头最有效? 怎样有效去除黑头?? 怎样消除黑头 怎样除黑头 怎样祛除黑头? 电脑上录音必须用麦克风和耳机?(还有问题补充) win7电脑录制电脑内部声音需要麦克风吗 电脑有不用话筒又能录音的功能吗? 电脑录音一定要用麦克风吗拜托各位了 3Q 电脑录音用耳麦好还是麦克风好?