pthread_create 함수의 매개변수가 이해가 안됩니다...
제가 보지 못한 변수형태라서 이해가 안되네요..
1. pthread_t *restrict thread
2. void *restrict arg
이 두개가 이상합니다..
변수형이
1번은 pthread_t 포인터형 타입변수 인거 같은데
2번은 void 포인터형 타입변수 이구요..
근데.. 남은 두 개???
보통 변수를 선언할때 타입값과 변수이름을 선언 하지 않나요??
restrict thread
restrict arg
이렇게 남는데.. 어떻게 해석해야 할지 모르겠습니다.. 도와주세요.
restrict는 변수 이름이 아니라 C 키워드야. 잘 모르겠으면 restrict 빼고 해석해봐
volatile, register 같은거??
어떤 의미로 사용하는지 알려줄수 있나요? 형님 ㅠㅠ
음 설명하기 좀 어려운데, 일단 컴파일러 최적화를 돕는 키워드고, restrict가 붙은 포인터는 다른 포인터와 alias되지 않는다는 의미야. 자세한건
https://en.wikipedia.org/wiki/Restrict
감사합니다!!!!!!!!!!!!!!!!!!!!! 60%정도 이해했어요!
restrict는 내가 엄청 까이면서 배웠는데, 이 기능은 에일리어스가 없는 것을 프로그래머가 보장해줘야 하는 거래, 이게 c99에서 들어온 기능인데 실제로는 아웃오브오더가 되어서 메모리에 실제로 쓰이는 값이 write-back이 되는 경우에 에일리어싱되어있으면 실제 값이 쓰이기 전에 다른 경로(에일리어싱된 포인터 주소)로 덮어쓰여질 수 있어서 이를 막기 위해 있는 거래.
즉 restrict 되어있으면 이 주소는 다른 포인터로 에일리어싱 하지 말래. 그렇게 했다간 시스템 오류를 발생시키거나 잘못된 결과를 얻을 수 있다고 하더라구
http://lgstar.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다. - DCW