Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 此函数是否返回与其参数相同的指针?_C_Pointers_Struct - Fatal编程技术网

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

C 此函数是否返回与其参数相同的指针?,c,pointers,struct,C,Pointers,Struct,我用C编写了这个函数: void *PWNRetain(void *object) { PWNObject *obj = (PWNObject *)object; // <-- looks stupid, I know :) obj->retainCount++; return obj; } 这将返回与其参数相同的指针,这一点很重要。obj等于object,还是我又犯了一个指针错误?谢谢 是的,这将在C中返回相同的指针。事实上,您不需要在第二行执行显式强制转换,因为C允

我用C编写了这个函数:

void *PWNRetain(void *object) {
  PWNObject *obj = (PWNObject *)object; // <-- looks stupid, I know :)
  obj->retainCount++;
  return obj;
}

这将返回与其参数相同的指针,这一点很重要。obj等于object,还是我又犯了一个指针错误?谢谢

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

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

您不需要返回该指针,只需将其设为void PWNRetainvoid*对象。我确实需要返回该指针。这就是为什么我要问这个问题。我只是想知道,为什么不返回对象;“最后呢?”丹,因为这一点都不重要。返回obj;代码更小,编译速度更快。哦,好的。在这种情况下,您可以将对象重命名为o并返回o;。更小的代码和更快的编译速度:如果他的答案回答了这个问题,你应该在左边的数字下面打个大勾。