`NM_OPER_ON_VIEW: PChar = 'OnView'` 作为常量声明的意义是什么?
What is significance of `NM_OPER_ON_VIEW: PChar = 'OnView'` as constant declaration?
最近我开始研究 delphi 5
开发的一款产品。
在浏览代码时,我在 constants
中坚持了一个声明,如下所示:
const
NM_OPER_ON_VIEW: PChar = 'OnView';
这种符号对我来说很新。
谁能告诉我这种符号的意义?
提前致谢。
那是一个typed constant。来自文档:
Typed constants, unlike true constants, can hold values of array, record, procedural, and pointer types. Typed constants cannot occur in constant expressions.
Declare a typed constant like this:
const identifier: type = value
where identifier is any valid identifier, type is any type except files and variants, and value is an expression of type. For example,
const Max: Integer = 100;
In most cases, value must be a constant expression; but if type is an array, record, procedural, or pointer type, special rules apply.
....
我要补充的是,与真正的常量不同,可以获取类型化常量的地址。
真常量通常优于类型化常量,因为真常量可用于常量表达式并由编译器求值。一般来说,如果可以使用真正的常量,就应该这样做。
如果常量是数组或记录等更复杂的类型,则必须使用类型化常量。然后缺点是编译器无法计算常量,而是在运行时计算值。
最近我开始研究 delphi 5
开发的一款产品。
在浏览代码时,我在 constants
中坚持了一个声明,如下所示:
const
NM_OPER_ON_VIEW: PChar = 'OnView';
这种符号对我来说很新。
谁能告诉我这种符号的意义?
提前致谢。
那是一个typed constant。来自文档:
Typed constants, unlike true constants, can hold values of array, record, procedural, and pointer types. Typed constants cannot occur in constant expressions.
Declare a typed constant like this:
const identifier: type = value
where identifier is any valid identifier, type is any type except files and variants, and value is an expression of type. For example,
const Max: Integer = 100;
In most cases, value must be a constant expression; but if type is an array, record, procedural, or pointer type, special rules apply.
....
我要补充的是,与真正的常量不同,可以获取类型化常量的地址。
真常量通常优于类型化常量,因为真常量可用于常量表达式并由编译器求值。一般来说,如果可以使用真正的常量,就应该这样做。
如果常量是数组或记录等更复杂的类型,则必须使用类型化常量。然后缺点是编译器无法计算常量,而是在运行时计算值。