1

一个简单的问题:Pascal 是否在原始标准(ISO 7185)中包含边界检查?

我在任何地方都看不到它(http://www.pascal-central.com/standards.html),或者我可能只是盲人。

我知道在一些 Pascal 编译器中我可以选择在哪里检查边界,对我来说重要的是它在该标准中的情况。

4

1 回答 1

3

我有一段时间没有看过标准,所以我的知识有点生疏,但是是的,边界检查包含在标准中(ISO 7185)。该标准要求 1. 数组索引是有效的(参见Indexed-variables),以及 2. 所有值都与被分配的变量赋值兼容(参见assignment compatibility)。

然而,该标准还指出,错误是“程序违反本国际标准的要求,允许处理器不被发现”(参见错误)。无效的数组索引和超出范围的分配违反了该标准,并且是错误的。

于 2016-04-30T08:57:25.370 回答