Bored Panda on MSN: 83 80’s Sitcoms That Truly Defined the Decade What is the point of #define in C++? I've only seen examples where it's used in place of a "magic number" but I don't see the point in just giving that value to a variable instead. c++ - Why use #define instead of a variable - Stack Overflow Is it possible to write a #define that defines a #define?

Understanding the Context

For example: 2 what's happening when you define something without giving a definition? Every valid #define directive associates a macro name with a corresponding replacement list (a "definition", in your terms). An empty replacement list is allowed, and there's nothing special about that as far as the preprocessor is concerned. The #define directive is a preprocessor directive; the preprocessor replaces those macros by their body before the compiler even sees it.

Key Insights

Think of it as an automatic search and replace of your source code. A const variable declaration declares an actual variable in the language, which you can use... well, like a real variable: take its address, pass it around, use it, cast/convert it, etc. Oh ... Is it better to use static const variables than #define preprocessor?

Final Thoughts

Or does it maybe depend on the context? What are advantages/disadvantages for each method? I have been seeing code like this usually in the start of header files: #ifndef HEADERFILE_H #define HEADERFILE_H And at the end of the file is #endif What is the purpose of this?