ZHCUAQ1F july 2015 – april 2023
C/C++ 编译器在所有模式下都支持 ANSI/ISO 标准关键字 const 除外。此关键字使您能够更好地优化和控制某些数据对象的分配。您可以将常量限定符应用于任何变量或数组的定义,以确保其值不被更改。
限定为 far 常量的全局对象放置在 .const 段中。链接器从 ROM 或闪存中分配 .const 段,它们通常比 RAM 更丰富。const 数据存储分配规则有以下例外情况:
volatile const int
x
。假设将 Volatile 关键字分配给 RAM。(不允许程序修改 const volatile 对象,但可能会修改程序外部的内容。)在这些情况下,对象的存储与未使用 const 关键字时相同。
const 关键字的位置很重要。例如,下面的第一条语句定义了指向可修改 int 的常量指针 p。第二条语句定义了指向常量 int 的可修改指针 q:
int * const p = &x;
const int * q = &x;
使用 const 关键字,您可以定义大型常量表并将它们分配到系统 ROM 中。例如,若要分配 ROM 表,可使用以下定义:
far const int digits[] = {0,1,2,3,4,5,6,7,8,9};