C 멀티 쓰레딩에 대해 배우려고 노력 중이며 몇 가지 드문 것들을 보았습니다.C 멀티 쓰레드에서 쓰레드에 파라미터를 올바르게 전달하는 방법
스레드로 매개 변수를 전달할 때 포인터를 사용해야한다는 것을 알고 있습니다. 나는 내가 모르는 모범을 발견했다. 관련 전화 번호를 복사하겠습니다 :
pthread_t tid[MAX_THREADS]
int n_veg
pthread_create(&tid[n],NULL,caracter,(void *)n_veg)
caracter는 분명히 미리 선언 된 기능입니다.
이제 우리는 왜 int 포인터 캐스팅 대신 void 포인터 캐스팅을 사용합니까? 관련성이 있습니까?
둘째, 왜 포인터 캐스팅을 처음 사용합니까? 첫 번째 매개 변수와 같이 "& n_veg"을 사용할 수 없습니까?
미리 감사드립니다. 다음과 같이
그래서 정수로 작업하는 경우 실제 포인터를 전달하거나 값을 캐스팅하는 것 사이에 실제적인 차이가 있습니까? 왜, * (int *) n_veg입니까? 두 번째 질문이 어리석은 경우 유감입니다. 프로그래밍에 관한 두 번째 해이자 이번 주까지만 java를 사용했습니다./ – bluehallu
@Hallucynogenyc : 예. 있습니다. 실제 포인터를 전달하면 포인터를 사용하여 원래 값을 변경할 수 있습니다.'* (int *) n_veg' :'void *'를 사용하려면 실제 타입으로 변환해야합니다. 그러므로'(int *)', 그리고'*'는 포인터를 역 참조하여 값을 얻습니다. – casablanca
모두 삭제되었습니다. 고마워요! – bluehallu