我有一個主要的功能是這樣的:對象在POSIX線程功能
int main(){
....
Protocol SPI_conn;
SPI_conn.omap_SPI_init();
....
pthread_create(&rt_OneStep0_thread, NULL, rt_OneStep0, NULL);
....
}
其中SPI_conn是類協議和omap_SPI_init(的對象)是同一類的方法。我的線程函數如下所示:
extern "C" void * rt_OneStep0(void *)
{
while (1) {
sem_wait(&step0_semaphore);
SPI_do();
sem_wait(&step0_semaphore);
}
}
SPI_do()也是類協議的函數。我的問題是,我如何使用方法SPI_do使用對象SPI_conn。通常你可以通過引用來完成,但是這裏必須像這樣定義rt_OneStep0(void *),對吧?
我真的很感謝你的幫助!
將您在main中創建的對象通過void * arg傳遞給線程函數。谷歌爲pthreads教程 - 有很多在那裏與如何做到這一點的例子。 – mathematician1975