Keil C51對C語言的關鍵詞擴充套件之六: compact
阿新 • • 發佈:2019-02-11
函式的引數和區域性變數儲存在記憶體模型指定的預設區域內。
我們可以通過small,compact 或large 指定一個函式使用何種記憶體模型。
#pragma small /* 預設記憶體模型為small*/ extern int calc (char i, int b) large reentrant; extern int func (int i, float f) large; extern void *tcp (char xdata *xp, int ndx) compact; int mtest (int i, int y) /* 記憶體模型指定為small */ { return (i * y + y * i + func(-1, 4.75)); } int large_func (int i, int k) largesmall記憶體模型下函式引數以及區域性變數儲存在 8051 內部ram區,資料存取效率高於 compact 和 large 記憶體模型。/* 記憶體模型指定為large */ { return (mtest (i, k) + 2); }