之前完全没有可重入函数的概念,可能是因为应付C语言考试,而没仔细看书吧,现在要好好补一补了。。。先来说说可重入函数
所谓的可重入,按我的理解,就是随时随地都可以被调用。无论此时是不是有别的语句正在调用它,都不会破坏数据。
viod strcpy(char *dest,char *src)
{
while(*dest++=*src++)
{
;
}
*dest=NULL;
}
这就是一个可重入函数,完成字符串复制功能,由于这些数据是保存在堆栈中的,所以就算中途被打断,目的和源指针所指内容也不会被改变。
不可重入函数
按以上可重入的理解,不可重入就是函数不能被同时调用,否则可能造成数据破坏。
int Temp;
void swap(int *x,int *y)
{
Temp=*x;
*x=*y;
*y=Temp;
}
注意,此时Temp是一个全局变量,如果被任意调用,则:
(嘿嘿,偷懒了,把邵贝贝教授翻译的那本UC/OS II直接照下来,贴上来了,没办法,学校的书,还了就再也见不到它了,留个纪念吧。。。)
文章评论(0条评论)
登录后参与讨论