C指针结构 - 缓冲区指向另一个结构。怎么用C#?

时间:2013-09-26 14:20:07

标签: c# c pointers buffer pascal

这是在C中给我的:

CDCAInput := PTCDCAInput(@CDCAr);

我只被告知: 函数使用结构TCDCAInput的指针来传递事务所需的其他输入字段。它将指向的缓冲区将被填充以响应CDCAResult结构。

我认为@CDCAr是CDCAResult结构的一个实例。但并不完全确定整行代码的含义。

对于像我这样不懂C的人......我无法想象如何在C#中编写它的等价物。

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:1)

我不知道C#所以我无法完全回答这个问题,但可以解释一些可能有帮助的事情......

Pascal和Delphi中的常见惯例是命名以“T”开头的结构化类型(记录和类)。另一种惯例是命名以“P”开头的指针类型。

使用这些约定,可能有一个名为TCDCAInput的Record(如C结构)类型,以及一个名为PTCDCAInput的类型,声明为指向TCDCAInput的指针。

@是Pascal的“地址”运算符,它给出变量的地址。

Pascal类型转换具有如下语法:TypeName(VariableName)

总的来说,这一行:

CDCAInput := PTCDCAInput(@CDCAr);

表示:将CDCAr变量的地址强制转换为PTCDCAInput类型,并将该值分配给CDCAInput变量。