在调试我的代码时,我注意到Delphi编译器(Berlin 10.1)不会警告没有返回值的函数。这是正常的吗?
以下是一个简单的示例:
function f(s:string):String;
begin
stringreplace(s,#32,'',[rfReplaceAll]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage(F('te st'));
end;
这一行
stringreplace(s,#32,'',[rfReplaceAll]);
应该是
result:= stringreplace(s,#32,'',[rfReplaceAll]);
没有警告!
我认为它应该警告“返回值可能未定义”。但它没有。 在过去的几天里,我更改并重写了一些旧代码的部分。我担心我的应用程序中存在这种错误。