1. 程式人生 > >Keil C51對C語言的關鍵詞擴充套件之六: compact

Keil C51對C語言的關鍵詞擴充套件之六: compact

函式的引數和區域性變數儲存在記憶體模型指定的預設區域內。

我們可以通過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) large
/* 記憶體模型指定為large */ { return (mtest (i, k) + 2); }
small記憶體模型下函式引數以及區域性變數儲存在 8051 內部ram區,資料存取效率高於 compact 和 large 記憶體模型。