[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00136] Re: patch-1.1.1-a008, patch-1.1.1-a009
永江です。
書いているうちに元木さんに先を越されてしまったので、
重複部分を省きます。:-)
From: Tatsuo Furukawa <frkwtto@osk3.3web.ne.jp>
Subject: [freewnn:00134] Re: patch-1.1.1-a008, patch-1.1.1-a009
Date: Fri, 24 Sep 1999 04:42:59 +0900
> srand((int)time(NULL));
>
> としてみました。1.1.1-a011 では何も言われないはずです。テストお願いし
> ます。
うっ。(^^;
diff -c de.c.orig de.c
*** de.c.orig Fri Sep 24 03:01:13 1999
--- de.c Fri Sep 24 05:43:04 1999
***************
*** 485,491 ****
#ifdef SRAND48
srand48(time(NULL));
#else
! srand((int)time(NULL);
#endif
clientp = 0; /* V3.0 */
cur_clp = 0; /* V3.0 */
--- 485,491 ----
#ifdef SRAND48
srand48(time(NULL));
#else
! srand((int)time(NULL));
#endif
clientp = 0; /* V3.0 */
cur_clp = 0; /* V3.0 */
> ------------------------------------------------------------------------------
>
> >> do_hindo_s.c: In function `hindo_set':
> >> do_hindo_s.c:135: warning: integer overflow in expression
> >> do_hindo_s.c:140: warning: integer overflow in expression
>
> これは
>
> ( RAND() < (double)1 / ((hindo >> 2) + 1)))
>
> でエラーになってますね。んで、RAND() が以下のように定義されてますが、
>
> #ifdef SRAND48
> double drand48();
> #define RAND() drand48()
> #else
> double drand();
> #define RAND() ((double)rand() / (double)((1<<31) - 1))
> #endif
>
> もしかして、OpenBSD 2.5 って int が 16 ビットなのでしょうか? (まさかね
> え…)
符号ビットの分ですね。unsigned にすれば黙りますよね。
diff -c do_hindo_s.c.orig do_hindo_s.c
*** do_hindo_s.c.orig Fri Sep 24 05:55:28 1999
--- do_hindo_s.c Fri Sep 24 05:55:37 1999
***************
*** 103,109 ****
#define RAND() drand48()
#else
double drand();
! #define RAND() ((double)rand() / (double)((1<<31) - 1))
#endif
UCHAR *hst;
int ima, hindo;
--- 103,109 ----
#define RAND() drand48()
#else
double drand();
! #define RAND() ((double)rand() / (double)((1U<<31) - 1))
#endif
UCHAR *hst;
int ima, hindo;
---- May the source be with you. ----
永江 英武 mailto:nagae@tk.airnet.ne.jp
Nagae Hidetake http://www.tk.airnet.ne.jp/nagae/