青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

關(guān)于delphi Assigned

Posted on 2010-08-20 14:08 S.l.e!ep.¢% 閱讀(671) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Delphi
關(guān)于delphi Assigned
2009-02-24 08:09

1. 根據(jù) Delphi 指令參考手冊(cè)中

說(shuō)明:
Assigned
函式在參數(shù)不為 nil 時(shí)傳回 True, 表示指針已經(jīng)指到某個(gè)內(nèi)存地址,這個(gè)內(nèi)存地址可能是一個(gè)對(duì)象地首地址,也可能在函數(shù)或過(guò)程中,聲明一個(gè)指針變量,沒(méi)有賦值為 nil ,無(wú)亂的指向某處,這兩個(gè)種情況, Assigned (指針變量)都不為 nil , 函數(shù)放回 True

而參數(shù)為 nil 時(shí)則傳回 False


Assigned
并不是一個(gè)真正的函數(shù)。

技巧:
用呼叫 Assigned 的方式來(lái)取代直接把參數(shù)拿來(lái)和 nil 比較,效率會(huì)更好。

2. 這個(gè)問(wèn)題要從內(nèi)存方面來(lái)解釋
當(dāng)你建構(gòu)一個(gè)物件 SomeComponet.Create(Owner);
系統(tǒng)會(huì)有一個(gè)指針指向這個(gè)對(duì)象
當(dāng)你解構(gòu)一個(gè)物件 SomeComponet.Free;
系統(tǒng)會(huì)將指針指到的東西殺掉,但是指標(biāo)還是指在相同的位置
請(qǐng)注意計(jì)算機(jī)的資源是有限的,
所以可能下一步你的程序要跟系統(tǒng)要資源,
剛才的指針位置,就出現(xiàn)了其它的數(shù)據(jù)
If Assigned(SomeComponet) then SomeComponet := nil;
先檢查這個(gè)對(duì)象有沒(méi)有在其它地方被設(shè)成 nil
然后再將它設(shè)成 nil

當(dāng)我們無(wú)法預(yù)測(cè)使用者會(huì)如何操爆他的計(jì)算機(jī),
程序員必須留意內(nèi)存的管理。 小弟淺見(jiàn) ...


3
function Assigned(var P): Boolean;

Description

Use Assigned to determine whether the pointer or procedure referenced by P is nil. P must be a variable reference of a pointer or procedural type. Assigned(P) corresponds to the test P<> nil for a pointer variable, and @P <> nil for a procedural variable.

Assigned returns False if P is nil, True otherwise.

檢查指針指向的參考變量或過(guò)程是否為 nil

每次我通常的處理方法都是:

if assigned(frm) then frm.close;?? 但是當(dāng)下次調(diào)用時(shí)就會(huì)出錯(cuò)。為什么呢,直到咋天我才知道原因

frm.close;frm.free; 只是指定這塊內(nèi)存可以重寫(xiě),并未釋放為 NIL 因此當(dāng)下次調(diào)用時(shí)即使 frm.free 已經(jīng)

執(zhí)行過(guò) assigned(frm) 仍為 TRUE ,再次釋放 frm.Close 或者 frm.free 肯定會(huì)報(bào)錯(cuò);應(yīng)為 frm.Close frm.free 是釋放 對(duì)象指針 frm 指向的內(nèi)存空間,在上次已經(jīng)釋放調(diào)了,但是 frm 本身并沒(méi)有 初始化為 nil , 相反它還是指向被釋放的內(nèi)存地址;東西已經(jīng)沒(méi)有了,沒(méi)有地東西去釋放,不報(bào)錯(cuò)錯(cuò)才怪。

正確的處理方法:

if assigned(frm) then
begin
?? frm.close;
?? frm:=nil;
end;

:

if assigned(frm) then
begin
frm.close;
freeandnil(frm);
end;

// 可以測(cè)試一些就能真正理解 FreeAndNil Assigned 函數(shù)地使用方法了;

procedure FreeAndNil(var Obj);

Description

Use FreeAndNil to ensure that a variable is nil after you free the object it references. Pass any variable that represents an object as the Obj parameter.

var P: Pointer;

begin
P := nil;
if Assigned (P) then Writeln ('You won''t see this');
GetMem(P, 1024); {P valid}
FreeMem(P, 1024); {P no longer valid and still not nil}
if Assigned (P) then Writeln ('You''ll see this');
end;


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲区在线播放| 久久国产精品一区二区| 亚洲第一页自拍| 国产精品ⅴa在线观看h| 久久久久国产精品人| 欧美三级不卡| 欧美激情亚洲国产| 国内精品久久久久国产盗摄免费观看完整版| 亚洲国产一区二区三区高清 | 久久免费国产精品1| 欧美日韩国产成人精品| 欧美视频网址| 亚洲国产精品日韩| 久久精品国产精品| 久久久精品日韩| 国产精品中文在线| 亚洲午夜影视影院在线观看| 在线视频精品一| 欧美另类在线播放| 亚洲欧洲综合另类在线| 亚洲级视频在线观看免费1级| 久久久久**毛片大全| 在线观看一区欧美| 久久―日本道色综合久久| 亚洲一区二区免费视频| 一区二区三区四区五区精品| 精久久久久久| 久久青草欧美一区二区三区| 老牛嫩草一区二区三区日本| 激情欧美丁香| 亚洲久久一区| 久久精品91久久久久久再现| 久久久www成人免费毛片麻豆| 国产视频欧美视频| 欧美专区日韩专区| 国产精品高潮呻吟久久| 亚洲电影下载| 久久久噜噜噜久久狠狠50岁| 亚洲欧美国产视频| 国产精品多人| 亚洲欧美综合国产精品一区| 中文一区二区在线观看| 午夜精品久久久久久久男人的天堂 | 欧美午夜片欧美片在线观看| 亚洲最新中文字幕| 亚洲男人天堂2024| 久久久久免费观看| 国产日韩欧美综合在线| 久久久91精品| 亚洲国产婷婷| 亚洲图片激情小说| 国产精品区二区三区日本| 欧美在线播放一区二区| 欧美激情日韩| 亚洲免费中文| 国内视频精品| 欧美激情第五页| 亚洲电影免费观看高清| 亚洲午夜电影| 韩国av一区二区三区| 一级日韩一区在线观看| 日韩视频中午一区| 亚洲免费观看高清完整版在线观看| 欧美日韩免费观看一区| 欧美一区二区精品久久911| 亚洲高清网站| 香蕉久久夜色| 欧美日韩免费观看中文| 在线免费日韩片| 中文无字幕一区二区三区| 久久亚洲视频| 亚洲免费中文| 亚洲国产精品一区制服丝袜 | 亚洲日本理论电影| 久久国产99| 一本久久青青| 激情婷婷久久| 国产精品久久一区二区三区| 久久综合网色—综合色88| 亚洲电影欧美电影有声小说| 国产精品视频yy9099| 久久嫩草精品久久久久| 一区二区欧美亚洲| 欧美国产视频在线| 久久国产精品第一页| 一本色道久久精品| 国产午夜一区二区三区| 欧美日韩91| 噜噜噜91成人网| 国产精品卡一卡二卡三| 欧美一区二区高清在线观看| 香蕉成人伊视频在线观看| 欧美国产欧美综合| 一本一道久久综合狠狠老精东影业| 国产欧美日本| 欧美视频精品在线观看| 美女成人午夜| 久久精品99无色码中文字幕| 亚洲一区二区三区涩| 亚洲精品人人| 久久欧美中文字幕| 日韩一区二区精品在线观看| 狠狠干成人综合网| 久久人体大胆视频| 在线中文字幕一区| 亚洲高清资源综合久久精品| 国产欧美精品va在线观看| 国产精品hd| 欧美日韩1234| 久久久综合免费视频| 99精品视频一区| 亚洲日本无吗高清不卡| 欧美日本在线| 久色成人在线| 久久久在线视频| 久久亚洲风情| 你懂的网址国产 欧美| 欧美精品精品一区| 欧美激情四色 | 牛夜精品久久久久久久99黑人| 久久久久这里只有精品| 国产精品高潮呻吟久久av无限| 欧美成人蜜桃| 亚洲精品国产精品乱码不99按摩| 亚洲激情网站| 亚洲精品综合| 久久伊人免费视频| 久久嫩草精品久久久久| 午夜精品久久久99热福利| 久久丁香综合五月国产三级网站| 久久久www免费人成黑人精品| 另类亚洲自拍| 亚洲国产精品一区二区第一页| 欧美午夜精品久久久久久超碰| 欧美在线91| 老司机久久99久久精品播放免费 | 亚洲理伦电影| 99国产精品久久久久久久成人热| 一区二区高清| 亚洲午夜av在线| 国产精品老牛| 亚洲欧美日韩一区| 亚洲丰满在线| 亚洲成色777777女色窝| 性色av一区二区三区红粉影视| 国产精品女人久久久久久| 欧美制服第一页| 久久影视三级福利片| 亚洲黄色在线观看| 韩国av一区| 欧美亚洲第一页| 国产精品福利网站| 久久中文精品| 欧美激情91| 欧美私人啪啪vps| 狂野欧美激情性xxxx欧美| 亚洲视频免费看| 亚洲作爱视频| 午夜在线视频观看日韩17c| 欧美多人爱爱视频网站| 欧美成人精品福利| 欧美激情第五页| 国产日韩欧美在线视频观看| 国产日本欧洲亚洲| 亚洲国产精品成人综合| 亚洲欧美中文另类| 宅男精品视频| 欧美不卡视频| 久久综合九色九九| 欧美国产成人精品| 国产日韩欧美在线| 日韩亚洲欧美在线观看| 欧美激情亚洲| 一区二区三区日韩| 久久字幕精品一区| 亚洲大片在线| 亚洲精品欧洲精品| 久久久99爱| 国产精品亚洲片夜色在线| 欧美国产亚洲另类动漫| 国产揄拍国内精品对白| 久久综合999| 欧美日韩亚洲天堂| 久久综合久久综合久久综合| 欧美ed2k| 久久久久综合一区二区三区| 久久国产色av| 激情久久一区| 久久精品日韩一区二区三区| 亚洲国产第一| 久久国产精品99精品国产| 欧美激情第三页| 亚洲精品网址在线观看| 久久久久久亚洲精品不卡4k岛国| 亚洲免费观看高清在线观看| 蜜臀99久久精品久久久久久软件 | 亚洲精品美女久久久久| 久久全球大尺度高清视频| 亚洲欧洲一区二区三区久久| 国产精品一区二区女厕厕|