gpt4 book ai didi

c - 如何在 MacRuby 中创建 C 指针?

转载 作者:行者123 更新时间:2023-12-02 02:15:56 25 4
gpt4 key购买 nike

我正在使用具有结构的 MacRuby 中的 C 框架

int CPhidget_getSerialNumber(CPhidgetHandle phid,int * serialNumber)    

可以查看完整文档here (如果你感兴趣)。

在 MacRuby 中我尝试了以下方法:

i = CPhidget_getSerialNumber(@encoder, nil)

上面的代码给我一个数字,但不是序列号。

CPhidget_getSerialNumber(@encoder, i)

这给我一个错误说明:预期的指针实例,得到“0”(Fixnum)(TypeError)(这并不让我感到惊讶)。

所以我的主要问题是:在 MacRuby 中是否有等效的 C 指针?

最佳答案

MacRuby 有一个 Pointer 类,可以代表 C 指针。所以,你可以这样做:

i = Pointer.new(:int)
CPhidget_getSerialNumber(@encoder, i)

然后,要从指针中提取结果(即取消引用它),您可以使用 Ruby 的数组访问语法:

i[0] #=> value from CPhidget_getSerialNumber

关于c - 如何在 MacRuby 中创建 C 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com