我在C:
中写了这个函数void *PWNRetain(void *object) {
PWNObject *obj = (PWNObject *)object; // <-- looks stupid, I know :)
obj->retainCount++;
return obj;
}
重要的是,它将返回与其参数相同的指针。 obj
是否等于object
,还是我犯了另一个指针错误?谢谢。 :)
答案 0 :(得分:7)
是的,这将在C中返回相同的指针。实际上,您不需要在第二行显式强制转换,因为C允许从void *
到其他指针类型的隐式转换。
答案 1 :(得分:0)
通常,人们会使用其结构的前向声明来启用类型安全,但是您的代码将按预期运行,并确实返回相同的指针。