2013-09-26 118 views
0

這是給我在C:C指針結構 - 緩衝區指向另一個結構。如何在C#中?

CDCAInput := PTCDCAInput(@CDCAr); 

我只告訴: TCDCAInput用於通過函數的結構的指針傳遞的交易所需的附加輸入字段。它指向的緩衝區將被填充以響應CDCAResult結構。

我認爲@CDCAr是CDCAResult結構的一個實例。但是不完全確定整行代碼的含義。

對於像我這樣不懂C的人......我無法想象如何在C#中編寫它的等價物。

任何幫助,非常感謝。 感謝

+3

這看起來不像C,更像帕斯卡。 –

+0

C中沒有':='運算符,所以這不是C ......除非你使用了一些非常討厭的宏。 – cdhowie

+0

我也沒有帕斯卡的經驗:) 函數是在C中,這是唯一提供的代碼。 非常感謝您的幫助,我猜這就是它在Pascal中的設置。 是否有可能在C#中使用Pascal中的示例進行上述操作? –

回答

1

我不知道C#,所以我不能完全回答這個問題,但可以說明一些事情,可以幫助...

它在Pascal和德爾福共同約定來命名結構類型(記錄和類)以「T」開頭。另一個約定是命名以「P」開頭的指針類型。

使用這些約定,可能有一個名爲TCDCAInput的Record(類似於C結構)類型,並且還有一個名爲PTCDCAInput的類型,聲明爲指向TCDCAInput的指針。

@是帕斯卡的「地址」運算符,它給出了變量的地址。

帕斯卡爾類型強制轉換有這樣的語法:TypeName(VariableName)

所以,總體來說,該行:

CDCAInput := PTCDCAInput(@CDCAr);

方式:施放CDCAr變量的地址給PTCDCAInput類型,並指定該值到CDCAInput變量。