Pascal 集合中是否允许使用负整数?

Pascal 集合中是否允许使用负整数?,pascal,freepascal,Pascal,Freepascal,我知道集合在FPC中不能有超过255个元素,但是,允许负整数吗 我偶然发现了这一点,在网上找不到任何与之相关的东西 PROGRAM test; TYPE rg = -10..0; negatives = set of rg; 我得到这个编译错误 test.pas(3,25) Error: illegal type declaration of set elements 我怀疑这个错误来自负整数,因为如果我将范围定义为0..5,例如,它可以正常编译。来自,它通常反映: 集合类型的范围是

我知道集合在FPC中不能有超过255个元素,但是,允许负整数吗

我偶然发现了这一点,在网上找不到任何与之相关的东西

PROGRAM test;
TYPE rg = -10..0;
    negatives = set of rg;
我得到这个编译错误

test.pas(3,25) Error: illegal type declaration of set elements
我怀疑这个错误来自负整数,因为如果我将范围定义为
0..5
,例如,它可以正常编译。

来自,它通常反映:

集合类型的范围是特定序数类型的幂集合,称为基类型;也就是说,集合类型的可能值是基类型的所有子集,包括空集合。基类型的可能值不能超过256个,其序号必须介于0和255之间

这句话也说了同样的话(不是很清楚,也有点难找到):

SetType的每个元素都必须是TargetType类型。TargetType可以是范围在0到255之间的任何序号类型


是的,元素是通过设置位来引用的。不能为负数,因为符号始终是最高位。是否也不允许大于255的整数?因为它们似乎也返回相同的错误消息。也许我做错了什么。哦,我明白了,我想知道为什么其他地方没有提到这一点。谢谢你们两位。这是。:-)看看我的答案。