【发布时间】:2014-04-04 21:20:02
【问题描述】:
在 ruby 中,我看到了以下内容。
10.times {
# do this block 10 times
}
有了这个,(据我所知,这与 ruby 无关)没有循环迭代器。在基于 C 的语言中,我能想到的最接近的副本是一个简单的 for 循环。
for (int i = 0; i < 10; i++) {
// do this block 10 times
}
但这利用了循环迭代器i。在基于 C 的语言(包括标签中列出的语言)中是否有任何方法可以在不使用迭代器的情况下多次执行代码块?
例如:如果我想执行一个块一定次数,但不关心我在哪个迭代。
【问题讨论】:
-
你误解了“迭代器”这个词的意思。
-
您可以使用宏在预处理时将任何代码重复任意次数。 有时需要这样做,所以我记得 Boost 预处理器库提供了这个功能。但你为什么想要它?
-
#define TIMES(n) for(int _i=0;_i<(n);++_i) -
#define NTimes(N) for (uint32_t __ntimes_i = 0; __ntimes_i < N; __ntimes_i++)#define DO(BLOCK) BLOCKNTimes(5) DO({/// stuff}) -
在这种情况下, i 实际上是一个迭代计数器。你需要柜台,这样你就知道什么时候完成了。
标签: c# c++ objective-c c