C语言实现协程(coroutine) 您所在的位置:网站首页 日语翻译机 C语言实现协程(coroutine)

C语言实现协程(coroutine)

2023-07-15 07:14| 来源: 网络整理| 查看: 265

Donald Knuth 说过:

“子程序就是协程的一种特例。”

编程过程中,最常用的就是函数调用,这时对于调用方来说,被调函数就是子程序(subroutine)。可以把协程理解相互配合工作的函数,函数之间可以相互切换,并且能够从上次切换的状态重新开始执行。 python 程序中的 yield 关键字可以将一个函数停止执行并保持执行状态,等待再次被调用。

def rangeN(a, b): i = a while (i case 0: state = 1; i = a; while (i int i; //for (; i = range(1, 5);) { // printf("debug>>>>>%d\n", i); //} // i = rangeV2(1, 5); while (i != 0) { printf("debug>>>>%d\n", i); i = rangeV2(1, 5); } }

如果不想使用goto关键字,可以使用 duff’s device (什么是达夫设备,参考这篇文章) 来实现:

int range(int a, int b) { static long long int i; static int state = 0; switch (state) { case 0: state = 1; //for (i = a; i < b; i++) { // return i; // case 1:; //} i = a; while (i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有