Nested for loop issue
Marco Leise
Marco.Leise at gmx.de
Sun Oct 27 08:31:18 PDT 2013
Am Sun, 27 Oct 2013 10:40:01 +0100
schrieb "Sumit Adhikari" <sumit.adhikari at gmail.com>:
> On Sunday, 27 October 2013 at 09:33:32 UTC, safety0ff wrote:
> > On Sunday, 27 October 2013 at 09:05:06 UTC, Sumit Adhikari
> > wrote:
> >> for (ushort i = 0 ; i < 65536 ; ++i){ // Holy King-Kong!
> >>
> >> for (ushort j = 0 ; j < 65536 ; ++j){
> >>
> >> status += testStimEq(i,j,cast(ushort)(i+j));
> >>
> >> }
> >> }
> >> What is that I am doing ?
> >
> > You have an infinite loop nested within another infinite loop,
> > ushort cannot represent a value which is >= 65536.
>
> Oops, missed that i & j is 16 bit!. Thanks for pointing that out
>
> Regards, Sumit
The idea of using correctly sized types everywhere is
honorable, but I found that for loops over N iterations
better use 32-bit integers or machine word size. One issue is
that you cannot iterate over all possible ushorts with a
ushort, another is that the loop variables fit better into
CPU registers as int/uint or size_t.
So I came to think of loop variables as indexes into the
list of ushorts and indexes are size_t. :)
--
Marco
More information about the Digitalmars-d
mailing list