删除有关已声明但未使用的符号的编译器警告

abd*_*tch 3 delphi delphi-7

我已经声明了一些偶尔仅用于调试的方法。例如:

// For debugging purposes only
{$IFDEF DBG}
procedure SaveLUTs();
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

这些方法很少使用,并且仅在定义了 DBG 时使用。如果未使用该方法,则会生成以下编译器警告:

[Hint] Hardware.pas(184): Private symbol 'SaveLUTs' declared but never used

除了注释掉方法声明和主体之外,有没有办法标记SaveLUTs以便编译器不会生成警告?我仍然需要生成通常的警告,包括有关其他未使用的声明方法或变量的警告。

使用 Delphi 7 并且对如何为较新版本的 Delphi 完成此操作感兴趣。

Ken*_*ssa 5

您可以像这样标记方法:

{$Hints Off}
procedure SaveLUTs();
{$Hints On}
Run Code Online (Sandbox Code Playgroud)

这将删除此过程的提示。

请注意,{$Hints ON}无论先前的 $Hints 状态如何,都会为单元的其余部分启用提示。由于{$IFOPT}不适用于长命名指令(至少,直到 Delphi 10 Seattle ......),我不知道有什么方法可以恢复以前的状态。

  • 重点是,任何人都不应该在项目级别关闭警告或提示,永远。除了“我必须处理到处都有警告和提示的代码,而且我太懒或没有时间修复它们”之外,请说出其他原因。即便如此,您通常也有导致它们的某些单元,您仍然只能为这些单元关闭它们 - 其他任何东西只会要求潜入您的代码的错误(尽管提示较少,但警告更多)。我仍然对人们遇到的有多少错误感到困惑,如果他们看到编译器消息,这些错误将不复存在。 (6认同)