From what I understand , #define blah 8
is a macro . While , #
is the pre-processor directive .
Can we say #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?
Please correct me if I am wrong.
Best Answer
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 namedblah
as an object-like macro replaced by the token8
.