我有關於posix pthread的以下問題。Posix Pthread in C
當我們接收由一個線程正在執行由該函數返回在
pthread_join()
數據,我們輸入投像(void **)
可變即使該變量是一個單一的指針。int *x; pthread_join(tid,(void**)&x); printf("%d",*x);
我應該否認類型流失的參數(在結構的情況下)?爲什麼我不能像
struct Data *obj= & (struct Data*)arg;
?int main() { ... pthread_create(tid,NULL,Foo,&obj); ... } void *Foo(void *arg) { struct Data *obj=* (struct Data*)arg; }
如何
pthread_join()
內部接收返回的變量。
問候
但是不pthread_join需要一個雙指針void變量?或者傳遞一個單獨的指針void變量是有效的 – Alfred
由於什麼時候指向void的指針的寬度和指向任何其他平臺的依賴和* not *標準定義的寬度?是否有符合標準的平臺,其中碰巧是指向int的指針(或任何其他類型的指針),sizeof( *)和sizeof(void *)'是例外情況)?或者你打算反映對齊問題嗎? –
WhozCraig
size(void *)> = sizeof( *)是標準所說的,據我所知。但是你可能不得不在博物館裏尋找任何使用不同尺寸的平臺來查看不同的指針類型。 –