From what I've read so far on the topic, there seems to be a common consensus that it is good practice to use const inplace of a preprocessor #define when declaring constants. Many of the reasons go on about type checking, and debugging, however, my main curiousity on the difference between the two is memory management on a low level. Since const allocates memory for a variable whereas #define simply does text replacement in the code, when it all comes down to machine language, which makes more effecient use of space, a hardcoded value or a variable?