C 指针结构 - 缓冲区指向另一个结构.如何在 C# 中

本文关键字:结构 另一个 指针 缓冲区 | 更新日期: 2023-09-27 18:33:04

这是在C中给我的:

CDCAInput := PTCDCAInput(@CDCAr);

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

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

对于像我这样不懂C的人...我不知道如何在 C# 中编写它的等效项。

任何帮助将不胜感激。谢谢

C 指针结构 - 缓冲区指向另一个结构.如何在 C# 中

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

在 Pascal 和 Delphi 中,以"T"开头命名结构化类型(记录和类)是一种常见的约定。另一种约定是命名以"P"开头的指针类型。

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

@是帕斯卡的"地址"运算符,它给出了变量的地址。

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

所以总的来说,这条线:

CDCAInput := PTCDCAInput(@CDCAr);

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