再入函數
再入函數可以同時由幾個程序共用。當執行再入函數時,其它程序可以中斷執行並開始執行同一個再入函數。通常,C51函數不能遞歸調用或者用於導致重入的方式。受到該限制是因爲函數自變量和局部變量都存放在固定的存儲器位置。再入函數屬性允許說明那些可以重入的函數,因此可以實現遞歸調用。例如
int calc(char i,int b) reentrant
{
int x;
x = table[i];
return (x*b);
}
再入函數可以遞歸調用,也可以同時被兩個後者更多程序調用。它經常用於實時應用或中斷代碼和非中斷代碼必須共用一個函數的情況。對於每個再入函數,根據存儲器的模型在內部或者外部存儲器模擬再入堆棧區。