Originale-mail to me for new edition

 

Directives

 

Directives are words that are sensitive in specific locations within source code. Directives have special meanings in Object Pascal, but, unlike reserved words, appear only in contexts where user-defined identifiers cannot occur. Hence, although it is inadvisable to do so, you can define an identifier that looks exactly like a directive.

 

Topic groups

 

See also

Character strings

Fundamental syntactic elements: Overview

Identifiers

Labels

Numerals

Reserved words

Special symbols

 

 

译文

 

指示字

 

指示字对源代码中的特殊位置是敏感的。在Object Pascal中,指示字具有特殊意义,但与保留字不同的是,指示字仅出现在用户定义的标识符不能出现的上下文(范围)中。因此,可以定义与指示字正好一样的标识符,尽管这样做是不妥当的(从代码易读的角度来说,容易产生混淆和歧义,尽管编译器能够正确区分)。

 

主题组

 

相关主题

字符串

基本语法元素:概述

标识符

标号

数字

保留字

特殊符号

 

 

编者注

下面的例子说明了指示字与保留字的区别。

 

  TForm1 = class(TForm)

    ...

    procedure ProcMyMsg(var message: TMessage); message WM_USER + 100;

  ...

 

在上面的代码中,出现的两个message具有不同含义。前者作为ProcMyMsg过程的参数,是一个标识符;后者作为指示字,含义是把过程ProcMyMsg作为消息处理程序,与消息WM_USER + 100联系在一起。前者可以用任何有效的标识符来替换(这样就不至于产生歧义),而后者则无法用其他标识符或保留字来替换。同样,前者也不能用保留字来替换。下面的写法将不被编译器认可:

 

    procedure ProcMyMsg(var for: TMessage); message WM_USER + 100;//保留字不能作为标识符

 

因此,尽可能不要定义与指示字同名的标识符。Object Pascal允许标识符具有任意长度(只要代码编辑器支持;而事实上完全不必定义长达数百个字符的标识符),而且前255个字符有效,相信不至于无法避免与指示字同名。