For example, I saw source code like the following. Can we use #define
in a function? How does it work? (more information: this code is what I copied from
#define
is a preprocessor directive: it is used to generate the eventual C++ code before it is handled to the compiler that will generate an executable. Therefore code like:
for(int i = 0; i < 54; i++) {
#define BUFFER_SIZE 1024
}
is not executed 54 times (at the preprocessor level): the preprocessor simply runs over the for
loop (not knowing what a for
loop is), sees a define statement, associates 1024
with BUFFER_SIZE
and continues. Until it reaches the bottom of the file.
You can write #define
everywhere since the preprocessor is not really aware of the program itself.