预处理指令执行顺序如何?

CodeA
#define MFunc(input) 斜杠
#ifdef Flag斜杠
input++;斜杠
#endif

CodeB
#ifdef Flag
#define MFunc(input)斜杠
input++;
#endif

为什么CodeA编译不过而CodeB编译通过呢,我了解到 同一预处理语句是可以支持嵌套的。CodeA与CodeB不同的原因是什么呢?是因为预处理语句有执行顺序吗,例如 文件包含 > #if > #define 这样吗?

你两段写的代码也不一样啊
CodeA具体错误是什么呢
你要测试不应该CodeB中写 #ifdef b #define a() #endif么

预处理语句也是语句啊,它当然是按顺序执行的
它也有语法,你不能乱写啊
怎么一会有括号一会没括号,一会又带斜杠,是要闹哪样


预处理语句毕竟是语句,你不要拿它当注释

供参考: 条件编译#ifdef的妙用详解 c语言中条件编译相关的预编译指令,包括 #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined。 #define 定义一个预处理宏#u https://www.cnblogs.com/klb561/p/9256408.html