Lions' 本ぼっち読み (24)

久々に C のコード読んで砂漠に。
最近、きちんと読んでないからなのかどうか、以下のループは何故機能するのか、ってあたりが直感的に分かりませんでした。ヤバい。

3766   spl5();
3767   if(callout[0].c_time <= 0) {
3768           p1 = &callout[0];
3769           while(p1->c_func != 0 && p1->c_time <= 0) {
3770                   (*p1->c_func)(p1->c_arg);
3771                   p1++;
3772           }
3773           p2 = &callout[0];
3774           while(p2->c_func = p1->c_func) {

上記、3774 の条件が比較に見えてました。3774 から始まる繰り返しで呼び出した分の要素を削除して前にツメている処理になってます。
明日の朝練では 3787 以降を確認の方向で。