方法1:宏,不断重复
#include <stdio.h>
#define P1 printf("print\n");
#define P10 P1 P1 P1 P1 P1 P1 P1 P1 P1 P1
#define P100 P10 P10 P10 P10 P10 P10 P10 P10 P10 P10
#define P1000 P100 P100 P100 P100 P100 P100 P100 P100 P100 P100
int main()
{
P1000
}
方法2:利用&&执行特点来实现,代码如下:
#include <stdio.h>
void print(int n)
{
n&&(print(n-1),printf("print %d times\n", n));
}
int main()
{
print(10);
}
方法3:用函数指针数组当开关,代码如下:
#include <stdio.h>
void print(int n);
void doPrint(int n);
void doNothing(int n);
void (*f[2])(int n) = {doPrint, doNothing};
int main()
{
print(10);
}
void doPrint(int n)
{
printf("print %d times\n", n);
print(n+1);
}
void doNothing(int n) {}
void print(int n)
{
f[n/1000](n);
}