日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi 中的 Var buffer 开类型参数

發(fā)布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi 中的 Var buffer 开类型参数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以下是在網(wǎng)上收集的一些對無類型參數(shù)的說明.個人理解無類型變量就是一個指針.

象Delphi中function ? Read(var ? Buffer; ? Count: ? Longint): ? Longint; ? override;象Buffer這樣沒有類型的參數(shù)究竟應(yīng)該怎么給參數(shù)???? ?
? 這說明Buffer是通過地址方式傳遞的,一般說來只要是一段內(nèi)存區(qū)域就行。??

?

?

?

?

var ? Buffer; ? const ? buffer; ?
? 這些沒類型說明的形參說明是取地址的首地址。 ?
? 類型 ? ? ? ? ? ? ? 首地址 ?
? string ? ? ? ? ? string[1] ?
? char ? ? ? ? ? ? ? 自己 ?
? integer ? ? ? ? 自己 ?
? record ? ? ? ? ? 自己 ?
? array ? ? ? ? ? ? arr[0] ?
? pchar ? ? ? ? ? ? pchar()^ ?
? pointer ? ? ? ? pointer()^ ?
? otherPointer ? ? ? ? ? otherPointer()^ ? ? PInteger()^之類的 ?
? ?
? 一般用首地址的方法或函數(shù)除了首地址外,都有一人count的參數(shù),一般我們用 ?
? length(string), ? sizeof(record), ? sizeof(type) ? * ? lengh ?
? ?
? 如果你在寫reocord中有string,請為它分配內(nèi)存: ? string[len], ? or ? str: ? array[0..len] ? of ? char

?

?

?

?

?

?

??????????????? Buffer1:Array ? of ? char; ? ?
? ? ? ? ? ? ? ? Buffer2:Array ? [0..2048] ? of ? char; ?
? Buffer1 ? 和 ? Buffer2 ? 在使用上是沒有區(qū)別的,如: ?
? Buffer1[10] ? 和 ? Buffer2[10]等價----char ? 類型 ?
? Buffer1 ? 和 ? Buffer2等價 ? ? ----------pointer ? 類型 ?
? 所以: ?
? ? ? ? ? ? Var ? Buffer:Array ? of ? char; ?
? ? ? ... ?
? ? ? ? FileStream.Read(Pointer(Buffer),FILEStream.Size); ?
? .... ?
? 應(yīng)該改為: ?
? ? ? ? FileStream.Read(Buffer,FILEStream.Size); ?
? ?
? 同理 ?
? ?
? Var ? ? Buffer:String; ?
? ... ?
? ? ? ? ? FileStream.Read(Pointer(Buffer),FILEStream.Size); ?
? ... ?
? 應(yīng)該改為: ?
? ? ? ? FileStream.Read(Buffer,FILEStream.Size);??

?

?

?

var表示變參,即在函數(shù)中可以改變其值并且返回到調(diào)用過程中
var buf就是不指定類型的變參,不管你傳入什么類型,函數(shù)中一律將其作為字節(jié)來對待,
比如傳入DWORD,就是4個字節(jié),函數(shù)中不知道是DWORD,所以必須用bufsize告訴它是4個字節(jié)
這樣明白?

?

相當(dāng)于讓你優(yōu)雅的傳遞一個數(shù)據(jù)指針,基本上接受這類參數(shù)的行為大部分就是內(nèi)存處理,無需理會或在意傳進(jìn)來的數(shù)據(jù)格式,或者參數(shù)的格式預(yù)先就知道,只是為了方便。

總結(jié)

以上是生活随笔為你收集整理的Delphi 中的 Var buffer 开类型参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。