zoukankan      html  css  js  c++  java
  • Delphi Function 返回值忘记默认赋值的一些问题

    Delphi function 函数的返回值,也就是Result,建议直接在函数开始就做一些初始化

    例如下面的代码

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i:Integer;
      str:string;
    begin
      Memo1.Lines.Clear;
      for I:=0 to 2 do
       begin
         str:=GetindexName(I);
        Memo1.Lines.Add(IntToStr(I)+':'+str);
       end;
    end;
    

    function TForm1.GetindexName(index: integer): String;
    begin
    if index=0 then
    Result:='传入了0'
    else if index=1 then
    Result:='传入了1';
    end;

      我以为的结果是

     事实上的结果是

     正确的代码应该是在GetindexName函数的开始时做一个初始化

    function TForm1.GetindexName(index: integer): String;
    begin
     Result:=''; //新增的代码
     if index=0 then
     Result:='传入了0'
     else if index=1 then
     Result:='传入了1';
    end;
    

      这个并不是什么漏洞,只是不好的代码习惯给自己挖的坑。这里只是记录一下。

  • 相关阅读:
    .net core2.2
    9_山寨系统调用 SystemCallEntry
    7_API调用
    8_InlineHook
    6_再次开中断STI的正确姿势
    5_中断现场下
    4_中断现场中
    3_中断现场上
    2_多核复杂性
    1_中断提权
  • 原文地址:https://www.cnblogs.com/wuxi15/p/14642171.html
Copyright © 2011-2022 走看看