首页 > 代码库 > 用C语言实现yield
用C语言实现yield
用C语言实现yield
C/C++中没有yield语法,有的时候想用产生器,自己实现一个循环会感觉很麻烦。C/C++应该如何实现产生器呢?
class FibonacciGenerator {
public:
FibonacciGenerator() : a(0), b(0), state(0) {}
int generate() {
switch (state) {
case 0:
for (a = 0, b = 1; ; c = a + b) {
state = 1;
return c;
case 1:;
}
}
}
private:
int a, b, c;
int state;
}
这个代码真的很神奇,我也没搞懂他是如何运行的,但是循环式的generator似乎可以这么写。
参考
- Coroutines in C
用C语言实现yield
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。