> However, what is the convention in C? There seem to be two fine ways > of doing it -- using the preprocessor, or the const keyword: > > #define NUMBER_OF_UNITS 8 > > const int NUMBER_OF_UNITS = 8; > > > > I'm just interested in hearing about whether one is more appropriate > than the other in some contexts. Thanks.
I would stick with defines. More modern languages have the option of effectively treating a "const" declaration as an immediate value, but I do not believe that C can. However there are times when a declaration which allocates storage is necessary, as when you need to pass a pointer to a value. Also, for strings the C standard requires each literal string constant to occupy unique read/write storage (in case the code decides to rewrite part of it). Therefore allocating a (optionally const) variable will use less storage than repeated use of a define'd string constant. Alternatively most compilers provide an option for making string constants read-only. The "const" type modifier is part of the ANSI/ISO C language standard (as is "void" and various other post K&R enhancements). -dl -- David A. Long JumpShift, LLC [EMAIL PROTECTED] _______________________________________________ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss