在让你输出0~99的数字的时候最常见的就是想到循环和递归递用
#include<stdio.h> int main() { for(int a=0;a<100;a++) { printf("%d ",a); } }
#include<stdio.h> void P(int x); int main() { int a=0; P(a); } void P(int x) { printf("%d ",x++); if(x<100) { P(x); } }
但是在不使用这两种方法的情况下如何能够实现
这里我们就可以使用的了预处理中的宏
#define
#include<stdio.h> #define X(a) a a a a a a a a a a int main() { int a=0; X(X(printf("%d ",a++);)) }
上面的代码中就用 X(a) 实现将 a 重复10次的功能起到了将0~99输出的效果
带有#的指令都是预处理命令
正常的C代码在编译时经过编译器分析得到机器代码
而预处理指令在编译前生效