В объявлении функции C я видел определение этого параметра:
void *userData
итак, что это такое? Мое предположение: пустота говорит, что это может быть что угодно, или даже ничего. Почти похоже на id цели-c. Он просто позволяет передавать любую структуру данных, которую вы любите.
Звезда перед userData говорит, что аргумент должен быть передан по ссылке.
Таким образом, при использовании этого элемента в теле функции, как правило, он должен быть приведен и разыменован.
Поэтому, если я передам указатель на экземпляр SomeClass, я получу это так:
SomeClass *myObj = (SomeClass*)userData;
В случае, если у меня не было ничего особенного, я бы указал NULL в качестве аргумента.
Верны ли мои предположения? Или я что-то не так понял?