网址:https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
网页一开始的两个程式码
左边:getchar里面应该已经有一个阵列,且在阵列里已经预先放置好一连串的资料了对吧?
所以一开始先从阵列里面拿出第一笔资料D1放进C,如果是EOF就跳出while,如果D1等于
0xFF,则再把D2放到len、D3放进C,接着第二个while则一直发送c(此时在c里面的值是D3)
,发到len(D2)里面的值为0为止;如果D1不等于0xFF,则发送D1。
我觉得奇怪的点是,为什么D1等于0xFF时,要把len(d2)当作条件的变量,然后狂发送D3,
不太懂这边的意义在哪里。
右边:一开始一样从阵列里拿出D1放进C,如果是EOF则跳出while,如果D1为alphabet,则
把C add to token(不太懂add to token是什么意思),接着再把D2放进C,如果D2也是alp-
habet则add to token,直到Dn不为alphabet为止。然后就执行got_token(看不懂这行在干
嘛),接着不为alphabet的那个Dn也被add to token(为什么,我一直认为是alphabet的资
料才会被放进token),最后在执行got_token(PUNCT)(不知道PUNCT哪里来的)。
有请各位前辈解惑一下小弟的疑问,谢谢。