E2171由于优化,此处无法访问变量'NyitIdo_oraS'

时间:2016-09-01 08:14:27

标签: string delphi int delphi-xe5

我得到了一个优化错误,不知道为什么请查看我的代码 该变量仅在此处一次使用(NyitIdo_oraS和NyitIdo_percS) 这些var没问题。 ZarIdo_oraS和ZarIdo_percS Edit1.text:= 06:00-22:00

  NyitIdo:=Edit1.Text;
  NyitOraC1 := NyitIdo[1];
  NyitOraC2 := NyitIdo[2];
  NyitPercC1 := NyitIdo[4];
  NyitPercC2 := NyitIdo[5];
  NyitIdo_oraS := StrToInt(NyitOraC1+NyitOraC2)*3600;
  NyitIdo_percS := StrToInt(NyitPercC1+NyitPercC2)*60;


  ZarOraC1 := NyitIdo[7];
  ZarOraC2 := NyitIdo[8];
  ZarPercC1 := NyitIdo[10];
  ZarPercC2 := NyitIdo[11];
  ZarIdo_oraS := StrToInt(ZarOraC1+ZarOraC2)*3600;
  ZarIdo_percS := StrToInt(ZarPercC1+ZarPercC2)*60;

1 个答案:

答案 0 :(得分:2)

变量NyitIdo_oraS被写入但从未读过。优化器可以从代码中辨别出来并且可以自由地忽略该变量。如果它有副作用,仍然必须调用StrToInt,但编译器没有理由创建NyitIdo_oraS变量,因为后续代码没有引用它。同样适用于NyitIdo_percS

通常,如果在编译器设置中禁用优化,则不再发生这种优化,您可以在调试器中检查变量。

如果启用了警告,则编译器应通知您正在分配变量但从不读取该值。你有警告吗?