я получил, что:Как передать функцию-член как pthread start_routine?
void* xxx::yyy(void* ThreadIdPtr)
И теперь я, что:
pthread_create(&tp, NULL, xxx::yyy, (void*) &i);
но компиляции ошибка:
error: argument of type 'void* (xxx::)(void*)' does not match
'void* (*)(void*)'
Как передать это правильно?
Я предлагаю вам прочитать о [ 'станд :: thread'] (http://en.cppreference.com/w/ CPP/резьба/резьба). –
Что касается вашего вопроса, то простой ответ заключается в том, что вы * cant't * используете нестационарную функцию-член. Все нестатические функции-члены имеют неявный и скрытый аргумент «нуль», который является указателем 'this'. Функция C, такая как 'pthread_create', не знает об этом и поэтому не может ее передать. –