2011-03-16 33 views
2

有人可以將此C結構轉換爲德爾福記錄?C結構到德爾福記錄(轉換)

typedef struct { 
    Uint16 addr2:8; 
    Uint16 addr1:8; 
    Uint16 addr4:8; 
    Uint16 addr3:8; 
    Uint16 addr6:8; 
    Uint16 addr5:8; 
}MY_ADDR; 

我試過了myslef。但我想不出如何處理addr2:8(:8)問題。

MY_ADDR = record 
    addr2:8 : Uint16; 
    addr1:8 : Uint16; 
    addr4:8 : Uint16; 
    addr3:8 : Uint16; 
    addr6:8 : Uint16; 
    addr5:8 : Uint16; 
    end; 

我不知道我是否也需要這個或沒有?

pMY_ADDR = ^MY_ADDR; 
+0

只是好奇,8表示什麼意思?寬度?自從我寫C以來已經很久了... – bnieland 2011-03-16 00:25:20

+1

他們是位。 @SroMah,這可能有所幫助:[bitfields](http://stackoverflow.com/questions/282019/how-to-simulate-bit-fields-in-delphi-records) – 2011-03-16 00:34:41

回答

4
MY_ADDR = record 
    addr1 : Byte; 
    addr2 : Byte; 
    addr3 : Byte; 
    addr4 : Byte; 
    addr5 : Byte; 
    addr6 : Byte; 
end; 

你需要周圍交換他們由於微軟的C位字段字節順序。