From what I understand , #define blah 8
is a macro, while #
is the pre-processor directive.
Can we say that #include
, #if
, #ifdef
, etc. are also macros, or are they called something else? Or is it that macro is just a term used for #define
statements only?
Lines that start with #
are preprocessing directives. They are directives that tell the preprocessor to do something.
#include
, #if
, #ifdef
, #ifndef
, #else
, #elif
, #endif
, #define
, #undef
, #line
, #error
, and #pragma
are all preprocessing directives. (A line containing only #
is also a preprocessing directive, but it has no effect.)
#define blah 8
is a preprocessing directive, it is not a macro. blah
is a macro. This #define
preprocessing directive defines the macro named blah
as an object-like macro replaced by the token 8
.