Difference between macro and preprocessor

后端 未结 4 1137
时光说笑
时光说笑 2020-12-15 07:15

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

4条回答
  •  南笙
    南笙 (楼主)
    2020-12-15 07:39

    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.

提交回复
热议问题