C语言中有什么可重入的ISO标准IO函数?
C语言的IO函数都是有缓冲的流,需要有全局变量维护状态,所以一般都是不可重入的。我的理解。
(1)使用了静态数据结构或者全局变量; (2)调用了malloc或free; (3)调用了标准I/O函数;标准io库很多实现都以不可重入的方式使用全局数据结构。
从字面上的意思就是,可以重复进入。可重入是在多任务系统下的概念,意思是这个函数可以在运行到任意位置的时候被中断去执行其他任务,并且返回的时候不会出现任何错误。为什么在多任务的时候才有这种概念。
可重入函数 1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。
stdio 就是指 “standard input & output(标准输入输出)所以,源代码中如用到标准输入输出函数时,就要包含这个头文件。例如c语言中的 printf(%d,i); scanf(%d,&i);等函数。
C语言中一个函数中如何反复调用另一个函数?
1、{ fun2(2,3);//调用fun} 在这个例子中,就是主函数调用自定义函数fun2,然后fun2调用另一个自定义函数fun不仅可以调用其它自定义函数,还可以调用自己本身。 这种称为递归。
2、当然是可以的,最简单的就是在主函数中调用另外一个自定义函数。
3、方法很多。主要是要将不同类型传递给fun2处理。最简单float类型最大,fun2的参数类型就定义为float,然后运算结果返回float类型。在main函数用a3,b3,c3接收的时候强转型。另一种方法,把变量都转换成一种类型传递。
4、可以调用多个函数,没有限制,除了main函数不可以调用。还有就是,它自己也可以调用自己。也可以调用一些库函数,比如“max(int,int)”,总之,除了main不可以,其他的都可以。不过在调用之前记得要声明。
我要用C语言写一个可重入函数,请问要避开哪些东西?
其实很简单,只要遵守了几条很容易理解的规则,那么写出来的函数就是可重入的。1) 不要使用全局变量。因为别的代码很可能覆盖这些变量值。
禁止在extern C中包含头文件。函数 函数设计的精髓:编写整洁函数,同事把代码有效组织起来。一个函数仅完成一个功能。重复代码应该尽可能提炼成函数。避免函数过长,新增函数不超过50行。
在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。
重入函数,又叫再入函数,是一种可以在函数体内不直接或间接调用其自身的一种函数。再入函数可被递归调用,无论何时,包括中断函数在内的任何函数都可以调入。再入函数在 C51编译时使用的是模拟栈。
赋值调用与引用调用 一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call by value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。