Chapter08 -...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Viewing Hints  ] [  Exercise Solutions  ] [  Volume 2  ] [  Free Newsletter  ]  Seminars  ] [  Seminars on CD ROM  ] [  Consulting  ]  Thinking in C++, 2nd ed. Volume 1 ©2000 by Bruce Eckel Previous Chapter  ] [  Table of Contents  ] [  Index  ] [  Next Chapter  ]  8: Constants The concept of  constant  (expressed by the  const  keyword) was created to allow the  programmer to  draw a line between what changes and what doesn’t. This provides safety and  control in a C++  programming project. Since its origin,  const  has taken on a number of different purposes. In the meantime it trickled back  into the C language where its meaning was changed. All this can seem a bit confusing at first, and in  this chapter you’ll learn when, why, and how to use the  const  keyword. At the end there’s a  discussion of  volatile , which is a near cousin to  const  (because they both concern change) and has  identical syntax. The first motivation for  const  seems to have been to eliminate the use of preprocessor  #define s for  value substitution. It has since been put to use for pointers, function arguments, return types, class  objects and member functions. All of these have slightly different but conceptually compatible  meanings and will be looked at in separate sections in this chapter. Value substitution When programming in C, the preprocessor is liberally used to create macros and to substitute  values. Because the preprocessor simply does text replacement and has no concept nor facility for  type checking, preprocessor value substitution introduces subtle problems that can be avoided in C+ + by using  const  values. The typical use of the preprocessor to substitute values for names in C looks like this: #define BUFSIZE 100
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
BUFSIZE  is a name that only exists during preprocessing, therefore it doesn’t occupy storage and  can be placed in a header file to provide a single value for all translation units that use it. It’s very  important for code maintenance to use value substitution instead of so-called “magic numbers.” If  you use magic numbers in your code, not only does the reader have no idea where the numbers  come from or what they represent, but if you decide to change a value, you must perform hand  editing, and you have no trail to follow to ensure you don’t miss one of your values (or accidentally  change one you shouldn’t). Most of the time, 
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 08/10/2011 for the course IT 331 taught by Professor Nevermind during the Spring '11 term at King Abdulaziz University.

Page1 / 27

Chapter08 -...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online