【问题标题】:Why Free Pascal prints 'NO'?为什么 Free Pascal 打印“NO”?
【发布时间】:2016-06-01 21:03:13
【问题描述】:
var
    a: Integer;  
begin 
    a:= 300;  
    if a in [100..500] then  
        WriteLn ('YES')    
    else  
        WriteLn ('NO')  
end.

【问题讨论】:

  • 似乎 freepascal 只允许集合的值 as can be seen here。编译器似乎没有生成警告。
  • 哦,是的,也许吧。谢谢!
  • FPC 给出此警告:xxx.pas(1,46) 警告:评估常量时范围检查错误(500 必须介于 0 和 255 之间)您是否忽略警告?

标签: freepascal


【解决方案1】:

根据FreePascal documentation,Pascal 仅支持 0 到 255 之间的数字集合。重要的部分在这里:

SetType 的每个元素都必须是 TargetType 类型。 TargetType 可以是范围在 0 到 255 之间的任何序数类型。一个集合最多可以包含 255 个元素。

打开范围检查{$R+} 将导致编译器警告您这些类型的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多