Hi Edmund,
I use constants at every opportunity. I discovered long ago
that constants help even when they are not part of a prototype.
For instance in my program the boardsize is a constant, so there
must be a different version for each boardsize.
- Don
On Sat, 2006-12-23 at 12:01 +0000, Edmund Stephen-Smith wrote:
> I've never encountered an example where using const could slow a
> program down. Using const properly in C gives the compiler
> opportunities to optimise. For example consider the crude
> construction:
>
> void
> scan_array(char *array)
> {
> char *p;
> for (p= array; *p != 0; p++) {
> if (*p == 'a')
> do_something(p, 1);
> if (*p == 'b')
> do_something(p, 2);
> }
> }
>
> The declaration of do_something() affects how the compiler can
> optimise. Let's say the compiler has put both p and *p in registers.
> If do_something() is declared as:
>
> void do_something(const char *, int);
>
> then *p is still valid after the function call. However if
> do_something() is declared as:
>
> void do_something(char *, int); /* NB: no "const" */
>
> then there's the possibility that do_something() might have changed
> the value in the array (e.g. from 'a' to 'b'). So, the compiler
> *must* reload the value from the array again -- another memory
> reference.
>
> Edmund.
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Behalf Of Don Dailey
> > Sent: 19 December 2006 13:13
> > To: House, Jason J.
> > Cc: computer-go
> > Subject: RE: [computer-go] Fast Board implementation
> >
> >
> > On Tue, 2006-12-19 at 02:21 -0500, House, Jason J. wrote:
> > > The const keyword has been completely removed from the
> > language and
> > > makes it hard to force such restrictions on "library users".
> >
> > I use const all the time in my C code but only for myself -
> > almost like
> > a comment in the source code saying "don't mess with this pointer."
> >
> > I thought all it did was generate compiler warning messages, but I
> > never payed that much attention to it. I just automatically stuck
> > it the prototype to indicate to me it was read only.
> >
> > In fact, I will probably take it out if it causes the compiler to
> > generate extra code. I would think such a think might help the
> > compiler optimize though.
> >
> > - Don
> >
> >
> > _______________________________________________
> > computer-go mailing list
> > [email protected]
> > http://www.computer-go.org/mailman/listinfo/computer-go/
>
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/