mack1983 发表于 2014-3-27 15:22:50

050讲,宏定义

这道题表示完全没弄明白,请有空的大虾帮忙解答一下
如何实现从零打印到999的?
#include <stdio.h>
#define A(X) X;X;X;X;X;X;X;X;X;X;//宏名为:A(X)10个带分号的X,起到什么做用?
int main(void)
{
int n=0;
A(A(A(printf("%d\n",n++))));//A(printf("%d\n",n++));这是什么意思?
return 0; //这个retrun 0又起到什么作用,这是main函数的返值,也没看到什么地方要引用main的返回值呐~~
}

无名侠 发表于 2014-3-28 20:38:00

#define A(X) X;X;X;X;X;X;X;X;X;X;
就相当于记事本中的替换
在代码中我们写:A(printf("*"))
那么 X;X;X;X;X;X;X;X;X;X; 这里的X全部会被替换成 A()里面的内容。
替换后就是:printf("*");printf("*");printf("*");printf("*")printf("*");.........这样的。

mack1983 发表于 2014-3-29 10:42:46

无名侠 发表于 2014-3-28 20:38 static/image/common/back.gif
#define A(X) X;X;X;X;X;X;X;X;X;X;
就相当于记事本中的替换
在代码中我们写:A(printf("*"))


明白,谢意哈~~
页: [1]
查看完整版本: 050讲,宏定义