A good way to understand what the preprocessor does to your code is to get hold of the preprocessed output and look at it. What are advantages/disadvantages for each method? What is the point of #define in c++
Memory Leaks and Dangling Pointers - ppt download
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.
Just do something like this
#ifdef use_const #define myconst const #else #define myconst #endif then you can write code like this Myconst int x = 1 Myconst char* foo = bar You'll need to complete a few actions and gain 15 reputation points before being able to upvote
Upvoting indicates when questions and answers are useful What's reputation and how do i get it Instead, you can save this post to reference later. The #define directive is a preprocessor directive
The preprocessor replaces those macros by their body before the compiler even sees it
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 0 in c or c++ #define allows you to create preprocessor macros
In the normal c or c++ build process the first thing that happens is that the preprocessor runs, the preprocessor looks though the source files for preprocessor directives like #define or #include and then performs simple operations with them. #define simply substitutes a name with its value Furthermore, a #define 'd constant may be used in the preprocessor You can use it with #ifdef to do conditional compilation based on its value, or use the stringizing operator # to get a string with its value.
I want to use the pi constant and trigonometric functions in some c++ program
I get the trigonometric functions with include <math.h> However, there doesn't seem to be a definition for pi i. Is it better to use static const variables than #define preprocessor Or does it maybe depend on the context