C (gcc) предупреждение: инициализация из несовместимого типа указателя при вызове pthread_cleanup_push () - PullRequest
1 голос
/ 25 мая 2011

gcc версии 4.3.3 под Ubuntu Linux 9.04 в случае необходимости*

В других случаях всплывающее предупреждение появляется в других случаях.Предупреждение также появляется, если я вызываю что-то вроде

pthread_cleanup_push(pthread_mutex_unlock, (void *)&m);

, где m имеет тип pthread_mutex_t.Предупреждение гласит:

предупреждение: инициализация из несовместимого типа указателя

Я не понимаю.Я передавал другие вещи, используя пустые указатели (например, при передаче аргументов в pthread) без этого предупреждения.Кто-нибудь может мне помочь?

1 Ответ

4 голосов
/ 25 мая 2011
void ctl_cleanup(void *arg);

Выше представлен прототип, который вы ищете. Возвращает void, а не указатель на void.

Дополнительный * в функции потому, что он принимает указатель на функцию, принимающую один аргумент void *, возвращающий void.

...