기금넷 공식사이트 - 금 선물 - C++rand 함수 소스 코드

C++rand 함수 소스 코드

Glibc 의 rand 소스 코드는 다음과 같습니다.

(Internationalorganizations 와 동일) 국제기구

__random_r? (부,? 결과)

Struct? Random_data? * buf

Int32_t? * 결과

{

Int32_t? * 주

만약? (부? = =? 널? | |? 결과? = =? 비어 있음)

고토? 실패;

상태? =? Buf-& gt;; 상태;

만약? (buf-& gt;; Rand_type? = =? TYPE_0)

{

Int32_t? 발. =? 상태 [0];

발. =? ((상태 [0]? *? 1103515245)? +? 12345)? & amp? 0x7fffffff

상태 [0]? =? Val

* 결과? =? Val

}

기타

{

Int32_t? *fptr? =? Buf-& gt;; Fptr

Int32_t? *rptr? =? Buf-& gt;; Rptr

Int32_t? *end_ptr? =? Buf-& gt;; End _ ptr

Int32_t? Val

발. =? *fptr? +=? * rptr

/*? 낄낄 웃어? 최소? 무작위? 조금. */

* 결과? =? 발? & gt& gt? 1)? & amp? 0x7fffffff

++fptr;

만약? (fptr? & gt=? End_ptr)

{

Fptr? =? 상태;

++rptr;

}

기타

{

++rptr;

만약? (rptr? & gt=? End_ptr)

Rptr? =? 상태;

}

Buf-& gt;; Fptr? =? Fptr

Buf-& gt;; Rptr? =? Rptr

}

반환? 0;

실패:

__set_errno? (einval);

반환? -1;

} 참조:? /lattera/glibc/blob/master/stdlib/random _ R.C.