+ -
当前位置:首页 → 问答吧 → 宏能实现循环功能不?

宏能实现循环功能不?

时间:2010-07-19

来源:互联网

例如,
#define foo(count) /* something here */

foo(1)可以得到 x
foo(2)可以得到 x x
foo(3)可以得到 x x x
...

作者: koolcoy   发布时间: 2010-07-19

是这个意思不?
#define foo(count) for(int i=0; i<count; i++) printf("x ");

作者: rain_fish   发布时间: 2010-07-19

LZ大概想要返回一个字符串

作者: hellioncu   发布时间: 2010-07-19

本帖最后由 群雄逐鹿中原 于 2010-07-19 12:11 编辑

嫌100个循环不够,先用script代码生成1000个好了
  1. #define FOR_1(x)   x
  2. #define FOR_2(x)   FOR_1(x) x
  3. #define FOR_3(x)   FOR_2(x) x
  4. #define FOR_4(x)   FOR_3(x) x
  5. #define FOR_5(x)   FOR_4(x) x
  6. #define FOR_6(x)   FOR_5(x) x
  7. ....
  8. #define FOR_100(x)   FOR_99(x) x

  9. #define FOR_N(n,x)    FOR_##n(x)


  10. int main()
  11. {
  12.     FOR_N(3,99)
  13.     return 0;
  14. }


  15. $ gcc -E t33.c
  16. # 1 "t33.c"
  17. # 1 "<built-in>"
  18. # 1 "<command line>"
  19. # 1 "t33.c"
  20. # 11 "t33.c"
  21. int main()
  22. {
  23.     99 99 99
  24.     return 0;
  25. }
复制代码

作者: 群雄逐鹿中原   发布时间: 2010-07-19