知道这个时候惊了,世界上不乏奇思妙想的人
|      1liuidetmks OP 看来我该问,V 站还有用 C 的人吗 | 
|  |      2nmap      2021-12-15 15:13:21 +08:00 现在还有人用这种上古时代的语言?? | 
|      3fengjianxinghun      2021-12-15 15:39:37 +08:00 @nmap 我写驱动不用这个用啥。。。 | 
|  |      4muooOOO      2021-12-15 15:51:18 +08:00 在一个 stm32 单片机项目上用过, 用来做高速多任务轮询,任务的执行时间能精确到 10us👍,吊打一大票 RTOS 第一次看到将行号作为条件来进行跳转,简直了震惊我的三观 | 
|  |      5zjsxwc      2021-12-15 16:31:50 +08:00  1 | 
|      6liuidetmks OP @zjsxwc 是啊,c 语言被一些人诟病的 switch 不能自动 break, 竟然能做这么用 | 
|      7littlewing      2021-12-15 17:20:33 +08:00 | 
|  |      8lbp0200      2021-12-15 17:24:57 +08:00 https://en.wikipedia.org/wiki/Coroutine 昨天还有热帖批判协程的,一脸苦大仇深的问 | 
|  |      9ipwx      2021-12-15 17:54:04 +08:00 @liuidetmks 哦原来 C 语言的模拟 coroutine 其实是自动机 hhh 这样来看,这种其实更类似于 on_message(message_type) { switch (message_type) { case xx: ... case xx: ... } } 只不过用了语法糖自动展开了 | 
|  |      10waruqi      2021-12-15 17:59:35 +08:00 via Android 有 我一直在用,欢迎使用 tbox 里面也有一套类似 protothreads 的 stackless conroutine 实现,接口更加简单 | 
|      11Zepp      2021-12-16 12:44:33 +08:00 点进主楼的链接之后发现是我 N 年前收藏的网址,但是仍然一个字都没看过…… | 
|      12bfdh      2021-12-16 16:53:16 +08:00 @liuidetmks #1 有的,一直用 C 。 不过 protothreads 今天还是第一次听说,看了下代码,发现局部变量应该会有问题,结果果然在网站上面找到了这样一段说明 Because protothreads do not save the stack context across a blocking call, local variables are not preserved when the protothread blocks. This means that local variables should be used with utmost care - if in doubt, do not use local variables inside a protothread! 感觉这个是个非常大的局限,反正我很在意这个。 | 
|      13bfdh      2021-12-16 16:57:42 +08:00 @fengjianxinghun #3 当然是用世界上最好的编程语言——PHP 了(手动狗头) | 
|      14zhangyichent      2021-12-16 19:25:26 +08:00 感觉我们以前公司的代码用的是类似的思路。。。。当时看的特别神奇。 |