線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1339
推到 Plurk!
推到 Facebook!

請教型態轉換C->Delphi

尚未結案
yoyo12345
一般會員


發表:33
回覆:77
積分:22
註冊:2003-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-03 11:34:54 IP:61.220.xxx.xxx 未訂閱
您好: 請教c語言的 void **Name 轉換成delphi是啥型態 void *name 又是啥型態 謝謝!! ==================================== 查詢help,得知如下 Base type Default sign Description void * - 32-bit context handle pointer type
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-03 14:02:25 IP:203.95.xxx.xxx 未訂閱
在 c 語言中, 使用 * 代表著是一種 pointer (指標, 指針) 的變數宣告用詞, 也就是你若是宣告:    int *p;    則代表了 p 是一個指向 int 的指標. void 則是一個 "空", "無" 的意思, 一般書上會寫 "泛用", 也就是可以是任何型態的一種宣告變數詞. 若是用在 function 的話, 代表無回傳值, 如:    void mytest() { ... }    代表著 mytest() function 是沒有回傳值的, 但是用在    void *p;     則代表著 p 是一個指向任何東西的指標, 也就是可以指向任何型態, 如 int, char.. 等, 是一種不定型別的指標.    在 delphi 中, 指標的狀況不是很明顯, 一般要使用的話, 除了 pointer 型別外(pointer 是一種泛用指標, 可以指向任何型態的資料), 其他的定型指標必須先宣告, 如:
type 
  PInt = ^integer; 
  PMyRec = ^MyRec;
  MyRec = Record
    sName: string;
    iAge: integer;
  end;
var 
  p: PInt;
  p2: PMyRec;
代表著 p 是一個指向 integer 的指標, 而 p2 是一個指向 MyRec 的指標!! 回歸正題, void *name 代表著是 name 是一個泛用指標, 轉為 delphi 的話, 相當於 name: Pointer; 那麼 void **name 呢, 指的是 name 乃為指向一個泛用指標的泛用指標, 很饒舌對吧, 但就是這樣而已, 沒有什麼難的, 若是要轉為 delphi 的話, 就比較麻煩了, 必須這樣寫:
type
  PPointer = ^Pointer;
var
  name: PPointer;
也就如此而已! c/c 就是指標好用, 因為再配合上 array 的概念, 還有 iterator 的話, 真的是很方便的東東, 但是在 delphi 中若要使用的話, 就得宣告, 小心使用, 但是說實在的, 在 delphi 中, 把 pointer 轉為一種更定性的宣告方式, 使得程式看起來更簡單有力, 或許更容易維護及閱讀吧...
yoyo12345
一般會員


發表:33
回覆:77
積分:22
註冊:2003-03-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-03 16:12:11 IP:203.69.xxx.xxx 未訂閱
謝謝您的回覆,很清楚 不好意思,再請教一個unsigned int轉成delphi什麼型態? 是word嗎?謝謝
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-03 18:28:41 IP:203.95.xxx.xxx 未訂閱
int 在 windows 下是一個 4 byte 的整數, unsigned int 也是一樣 4 byte, 只是沒有負的部分, 對應 delphi 的話, 就是: Longword 0..4294967295 unsigned 32-bit 或 Cardinal 0..4294967295 unsigned 32-bit 這兩種型態! 你說的 word 是: Word 0..65535 unsigned 16-bit 相當於 c 的 unsigned short int 的型態囉!
系統時間:2024-05-07 19:23:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!