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标签项中选择,如图: