cでは、次のようなスレッドを作成します。
void * run(void * arg){
printf("hello world\n");
}
int main(){
pthread_t thread;
int a = pthread_create(&thread, NULL, run, (void*)0);
}
しかし、runを次のように宣言すると機能しません
void run(){}
一方、(void *)
のパラメータでキャストするとpthread_create
正常に動作します。したがって、戻り型が。の関数のみを受け入れます(void *)
。
なんで?
ありがとう !