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 了

原文地址:https://www.cnblogs.com/yuanyb/p/11074590.html