Derek Martin <[EMAIL PROTECTED]> writes: > On Mon, Aug 18, 2003 at 08:13:05PM -0400, Erik Price wrote: > > 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; > > Normally, the former way is what you'd use. The latter construct is > most often used, in my experience, for function parameters which you > want to make sure are not modified by the function to which they > belong.
This is confused. Erik wasn't even asking about function parameters. He just wants to use a constant in his program. Sure, "const" carries some meaning when used with function parameters, but Erik wasn't asking about this. > I'm not a compiler guru, but I believe references to the #define'd > macro will cause the compiler to use immediate mode addressing, using > the value of the macro literally, requiring no additional storage > beyond what is required to store the opcode and its operands. Whereas > the second method allocates storage in the segment of memory > associated with initialized data that hangs around, so that it can > contain the constant. Like you stated in a later post, exactly *what* the compiler does for these cases is implementation defined. --kevin -- Kevin D. Clark / Cetacean Networks / Portsmouth, N.H. (USA) cetaceannetworks.com!kclark (GnuPG ID: B280F24E) alumni.unh.edu!kdc _______________________________________________ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss