为什么ISR内部不可以用printf和malloc函数
2017-04-15 17:52
337 查看
首先printf和malloc函数都是不可重入函数:
printf --------引用全局变量stdoutmalloc --------全局内存分配表
而中断是随机发生的,如果先使用printf函数,此时中断来临,最后中断里面又使用了printf,那么此时就会改变全局变量stdout的值,也就是最后输出到屏幕的值不是自己所期望的。
相关文章推荐
- 为什么内部类使用的局部变量必须是final而全局变量可以是no-final
- 局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?
- Java基础-内部类-为什么成员内部类可以无条件访问外部类
- Python 里为什么函数可以返回一个函数内部定义的函数
- 为什么不可以从一个 static 方法内部发出对非 static 方法的调用
- 为什么setInterval外边获取不到标签元素,在内部却可以获取到?
- jsp内置对象为什么可以直接使用?
- 为什么硅谷的工程师可以工作到40岁以上
- 建立DB时候为什么要建立索引?为什么索引可以加快查找速度呢?
- 学了Python后,我走哪里都可以连WIFI!为什么?反正就是这么强!
- 非静态内部类为什么可以访问外部类的静态成员
- 在 python 中,如果 x 是 list,为什么 x += "ha" 可以运行,而 x = x + "ha" 却抛出异常呢
- 是否可以从一个static方法内部发出对非static方法的调用?
- 为什么数据库读写分离可以提高性能
- 为什么文件路径 Program Files 可以写成 Progra~1
- 为什么可以把未提交的数据写入数据文件?――通过DML操作举例解析
- 唐僧为什么可以领导孙悟空(项目管理)
- 为什么LoRa可以在能源计量领域快速突破?
- 面试题9:问题:是否可以从一个static方法内部发出对非static方法的调用?
- 对于结构体,什么时候分配内存以及为什么选择用malloc函数来分配结构体变量的地址