Re: 64-bit srandom()?
Re: 64-bit srandom()?
- Subject: Re: 64-bit srandom()?
- From: "Clark Cox" <email@hidden>
- Date: Wed, 14 Nov 2007 18:25:50 -0800
On Nov 14, 2007 10:57 AM, A.M. <email@hidden> wrote:
>
> On Nov 14, 2007, at 1:37 PM, Nick Zitzmann wrote:
>
> > I searched around and didn't see anything relevant...
> >
> > In our 32-bit projects, we're calling:
> >
> > srandom(time(NULL));
> >
> > What's the best way of doing something like the above in a 64-bit
> > program? srandom() takes a 32-bit integer when compiling for both
> > 32-bit and 64-bit, but time() returns a 64-bit integer when
> > compiling for 64-bit. I guess I have until 2038 to worry about
> > this, but I'd rather deal with it now...
>
> srandrom() doesn't really care about the actual time- you should just
> make sure you seed with the least-significant 32-bits which you can
Because of the type conversion rules of C, you're guaranteed to get
the least significant 32-bits when you convert a 64-bit unsigned
integer to a 32-bit integer. No need for any bitwise operations.:
unsigned seed = time(NULL);
--
Clark S. Cox III
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden