原创 【原】可重入函数

2008-2-2 17:37 4271 6 6 分类: MCU/ 嵌入式

        之前完全没有可重入函数的概念,可能是因为应付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是一个全局变量,如果被任意调用,则:ef1be3d5-5074-438e-8565-ec1da873826d.jpg


(嘿嘿,偷懒了,把邵贝贝教授翻译的那本UC/OS II直接照下来,贴上来了,没办法,学校的书,还了就再也见不到它了,留个纪念吧。。。)

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条