C语言宏的神奇写法:语句块作为参数,算半个函数式编程?

我想要写几个循环做测试代码,每次都写 `for(size_t i = 0; i < n; i++)` 很烦人,然后就灵机一动,能不能用宏实现,然后就写出了:

#define repeat(n, statements) for(size_t i = 0; i < n; i++) { statements }

然后竟然真的可以执行指定的语句(块),像发现了新大陆一样,哈哈,不知道这算不算半个伪函数式编程。测试:

repeat(10, {
    puts("hello world");
});

然后就会打印10行 hello world 了

 

posted @ 2019-06-23 21:59  yuanyb  阅读(520)  评论(0编辑  收藏  举报