Эта функция возвращает тот же указатель, что и ее аргумент? - PullRequest
0 голосов
/ 20 декабря 2010

Я написал эту функцию на C:

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

Важно, чтобы она возвращала тот же указатель, что и аргумент.obj равно object или я сделал другую ошибку указателя?Благодарю.:)

Ответы [ 2 ]

7 голосов
/ 20 декабря 2010

Да, это возвратит тот же указатель в C. На самом деле вам не нужно явное приведение во второй строке, поскольку C допускает неявное преобразование из void * в другие типы указателей.

0 голосов
/ 20 декабря 2010

Как правило, люди используют предварительное объявление своей структуры для обеспечения безопасности типов, но ваш код будет функционировать так, как ожидается, и действительно возвращает тот же указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...