先來點網上的書面化的解釋:µC/OS是多任務內核,函數可能會被多個任務調用,代碼的重入性是保證完成多任務的基礎。可重入代碼指的是可被多個體任務同時調用,而不會破壞數據的一段代碼,或者說代碼具有在執行過程中打斷後再次被調用的能力。
再來點實貨:
Swap1函數代碼:
Int temp;
void swap1(int *x,int *y)
{
temp=*x;
*x=*y;
*y=temp;
} 這是不可重入代碼;
Swap2函數代碼:
void swap2(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
} 這是可重入代碼
1.函數中不能有全局變量,靜態變量;
2.不能返回全局,靜態變量地址;
學習遇到的一點問題,找了一點資料和理解跟有需要的朋友分享下~