結構初始化的小Bug,又是一個坑,無論新手高手都要注意!!!

Bug代碼如下:

var
  AParam: TUserRecord;
begin
  AParam.Value = 123;

因爲AParam是個結構,在Windows平臺上沒有問題,但到了其它平臺直接藍屏然後掛了...
原因很簡單,僅僅是因爲AParam中的其它參數沒有初始化,導致後面的代碼在執行過程中出現了問題。
這種問題雖然都很弱智,但是找起來卻非常非常麻煩...
解決方法也很簡單:


var
  AParam: TUserRecord;
begin
  //任何結構在使用前必須手工初始化
  FillChar(AParam, SizeOf(TUserRecord), 0);

  AParam.Value = 123;

結論:

無論在哪個平臺,只要是NativeCode,都要養成初始化結構變量或者內存的好習慣,否則,一些莫名奇妙的問題會把人搞的慘不忍睹。

 

BTW:有空可以去moonserver.cn看看博主寫的Web服務器...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章