From what I understand , #define blah 8 is a macro . While , # is the pre-processor directive .
Can we say #include,#if,#ifdef,etc. are al
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.