此函数是否返回与其参数相同的指针?

时间:2010-12-20 18:38:46

标签: c pointers struct

我在C:

中写了这个函数
void *PWNRetain(void *object) {
  PWNObject *obj = (PWNObject *)object; // <-- looks stupid, I know :)
  obj->retainCount++;
  return obj;
}

重要的是,它将返回与其参数相同的指针。 obj是否等于object,还是我犯了另一个指针错误?谢谢。 :)

2 个答案:

答案 0 :(得分:7)

是的,这将在C中返回相同的指针。实际上,您不需要在第二行显式强制转换,因为C允许从void *到其他指针类型的隐式转换。

答案 1 :(得分:0)

通常,人们会使用其结构的前向声明来启用类型安全,但是您的代码将按预期运行,并确实返回相同的指针。