Keil C51編譯器提供三種類型的內存模型:small,compact,large。
內存模型決定了函數參數、自動變量以及未顯式聲明存儲類型情況下的默認存儲類型。
三種內存模型的默認存儲區域:
內存模型 | 參數 & 自動變量 |
全局變量 | 常量 | 指針定義 | 指針所佔內存 |
---|---|---|---|---|---|
SMALL | data | data | data | * | 3 字節 |
COMPACT | pdata | pdata | pdata | * | 3 字節 |
LARGE | xdata | xdata | xdata | * | 3 字節 |
我們可以在程序中使用#pragma 來指定默認內存模型:
#pragma small 或#pragma compact 或#pragma large
也可在Keil選項設置對話框Target標籤項中選擇,如圖: