Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。 C言語でコルーチンを実装してみる、その2。 前回のコルーチンマクロではローカル変数が使えない、外部から状態を制御できないという問題があった。今回はそれらの問題を解決してみる。まずはサンプルコードを見てほしい。 int hoge(co_routine_t coro){ co_begin(coro); co_local_valiables{ int a; int b; }; co_local.a = 0; co_local.b = 0; printf("arg 0x%x\n",(int)co_get_addrword(coro)); while(1){ printf("a=%d b=%d