|
发表于 2015-3-9 12:21:16
|
显示全部楼层
本帖最后由 小人 于 2015-3-9 04:24 编辑
先说定义宏
#define A(x)x;x;x;x;x;x;x;x;x;x //这句的意思就是把x 执行10次
如果这样写#define A(x)x;x //就是 把x执行两次
然后 下面的 A(A(A(printf("%d\n", n++))));
因为上面定义的宏 A是把括号里的执行10次如果是A(printf("%d\n", n++) 那么 把括号里的东西执行10次就等于
printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++) printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++)
printf("%d\n", n++)
那么 A(A(A(printf("%d\n", n++)))) 10*10*10x
说这么多 应该能明白吧 
语文老师死得早
|
|