代码如下
关于c实现yield功能,这个网站有介绍的
http://coolshell.cn/articles/10975.html
#include <stdio.h>
#define Begin() static int state=0; switch(state) { case 0:
#define Yield(x) do { state=__LINE__; return x; case __LINE__:; } while (0)
#define End() }
int function(void) {
static int i;
Begin();
for (i = 0; i < 10; i++)
Yield(i);
End();
}
int main(){
int j;
for(j = 0; j < 20; j++){
printf("%d | ", function());
}
printf ("\n");
return 0;
}
执行结果
