如何在不使用循环和递归递用的情况下输出0~99

 

在让你输出0~99的数字的时候最常见的就是想到循环和递归递用

#include<stdio.h>
int main()
{
    for(int a=0;a<100;a++)
    {
        printf("%d\t",a);
    }
}
#include<stdio.h>
void P(int x);
int main()
{
    int a=0;
    P(a);
}
void P(int x)
{
    printf("%d\t",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\t",a++);))
 } 

上面的代码中就用 X(a) 实现将 a 重复10次的功能起到了将0~99输出的效果

带有#的指令都是预处理命令

正常的C代码在编译时经过编译器分析得到机器代码
而预处理指令在编译前生效

posted @ 2017-03-24 09:14  灬F灬  阅读(379)  评论(0编辑  收藏  举报