Delphi 我在Pascal中得到一个括号错误。怎么了?

Delphi 我在Pascal中得到一个括号错误。怎么了?,delphi,pascal,Delphi,Pascal,下一行 writeln('The decimal equivalent is ', BinToDec(dec)); 是不是给了我错误 已找到“(“预期但”)” 怎么了 感谢dec是一个递减顺序变量的内在过程。当编译器遇到dec时,它需要(打开parens符号,与任何其他过程调用一样。因此会出现错误 我怀疑您将dec想象为一个变量,但事实并非如此。如果是这样,编译器将看到该符号而不是内部过程。无论如何,您应该使用不同的变量名以避免混淆。出现此编译器错误的原因是您的代码行没有访问权限对于任何名为“

下一行

writeln('The decimal equivalent is ', BinToDec(dec));
是不是给了我错误

已找到“(“预期但”)”

怎么了


感谢

dec
是一个递减顺序变量的内在过程。当编译器遇到
dec
时,它需要
打开parens符号,与任何其他过程调用一样。因此会出现错误


我怀疑您将
dec
想象为一个变量,但事实并非如此。如果是这样,编译器将看到该符号而不是内部过程。无论如何,您应该使用不同的变量名以避免混淆。

出现此编译器错误的原因是您的代码行没有访问权限对于任何名为“dec”的变量或常量。在这种意义上,您希望传递到BinToDev的任何值都不可用

因此,Delphi将“dec”解释为来自系统单元的dec()函数。此函数接受一个参数,因此编译器需要右括号“(”——因此出现错误


如果我有一个“dec”,你的代码行可以为我编译在某个地方定义了变量。如果我删除该变量,就会得到您的错误。

Dec
是pascal中的一个特殊单词。请为您的变量选择一个不同的名称。我猜
Dec
变量未在语句的范围内声明。我会选择一个不同的变量名称,以避免与系统函数
Dec
小数
更具描述性(我知道,它也更具类型化,但类型化会创建更可读的变量名:)。为什么不显示问题的完整背景?@Theodowl:您是如何“尝试更改它”的?无论如何,与
System.Dec
没有冲突,除非您的作用域中实际上没有变量
Dec
。如果没有变量,则编译器假定您的意思是
System.Dec
。因此,显示更多代码,即声明变量的位置(如果有)。必须先声明变量,然后才能使用变量。