写个最简单的c++20协程的代码
时间: 2023-02-19 17:47:16 浏览: 62
以下是最简单的C语言协程代码:
```
#include <stdio.h>
#include <ucontext.h>
ucontext_t context1, context2;
void func1() {
while (1) {
puts("In func1");
swapcontext(&context1, &context2);
}
}
void func2() {
while (1) {
puts("In func2");
swapcontext(&context2, &context1);
}
}
int main() {
getcontext(&context1);
context1.uc_stack.ss_sp = malloc(16384);
context1.uc_stack.ss_size = 16384;
context1.uc_link = &context2;
makecontext(&context1, (void (*)(void)) func1, 0);
getcontext(&context2);
context2.uc_stack.ss_sp = malloc(16384);
context2.uc_stack.ss_size = 16384;
context2.uc_link = &context1;
makecontext(&context2, (void (*)(void)) func2, 0);
swapcontext(&context2, &context1);
return 0;
}
```
注意:这仅仅是一个示例代码,并不代表最佳实践。