コメントする非常に珍しい書き方をしたCのコードを見た。deviceという記事。日本語訳にも出てきているほど、有名なコードのようである。Deviceしらなかったぁ。*from++;while(–count>0);}ポインタtoがデータの出力先。I/Oレジスタと考えればいい。ここにデータを投げ込むことにより送信されると考えて欲しい。こいつが、遅いから最適化、ループを減らしましょう、ということで、以下のコードが出来上がった。while(–n>0);}}一見、何やってるのかよくわからないコードではあるが、丁寧に読めばわかる。8で割った回数ループを回して、余りの分処理をするなんて最適化、結構ありがちなんだけど、余りの分の処理のコードが面倒だからと、こうなったらしい。ループの外側から、swich文で、ループの内側のcaseラベルに飛び込む。caseの後ろのbreakを入れて無いのでどんどん下の処理を行いながら、余りの分の処理を済ませる。最後のwhile文が来るのでdoを探して、ループ開始。いまどきのCPUと、それにあわせたコンパイラの最適化の元ではこのような最適化が有効なのかどうかという議論は置いておく。(僕の予想では、効果なんてほとんど無いと思う。)一般的に、ループの途中から飛び出すのはあんまりお行儀が良くないとされている。ループの途中に外から飛び込むコード。中に飛び込むコートって、gotoを使わないと書けないと思ってた。switchでも書けるのね。だいたい、生まれてこの方、一度もループの中に飛び込むコードって書いたこと無いかもしれない。ついでに、case文の後ろのbreakの議論も入った、非常に興味深いコードである。いやぁ、まだまだC言語について知らないことっていっぱいあるのねぇ。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress%d。