嘿窥视,
我目前正致力于将一些旧的 C 库移植到 C#,但在理解包含指针的某段代码时遇到了一些麻烦。
在 C 方面不是最好的,所以我可能缺乏一些理解。
这是我正在查看的简化版本:
unsigned int block[2];
// --- inside a function
unsigned int *block; // only got access to this pointer not the array
unsigned long left, right;
// some math
*block++ = right; // these lines are the important bit i dont quite get
*block = left;
现在...
到目前为止,我认为我得到的是:
- 第一行...
- 取消引用指针
- 将其值设置为
right
- 将指针向前步进 1
- 而第二行...
- 取消引用指针
- 将其值设置为
left
现在我难以理解的是最终结果 ( blocks[]
) 的外观。
(遗憾的是,不能只是调试它并偷看一下,因为我真的不知道 id 如何使用 lib 二进制文件来做到这一点......)如果也是uints
会相当简单,但它们都是 ulongs 所以可能存在某种覆盖对吗?left
right
我对此有点困惑/迷失了......也许你们中的一些人有更好的C知识可以帮助我^^