タグ

zigとloopに関するmasterqのブックマーク (1)

  • Zigで配列をなめるときにはできるだけwhileでなくてforを使いましょうという話

    まあ、当たり前のことなんですけどね。 前回の記事のプログラムを書き直した 前回の記事のMJPEGからJPEGを切り出すプログラムにはバグがありました。脚注にも書きましたが、それは読み込んだバッファの最後のバイトが0xffで、次のバッファの先頭が0xd9のときに、JPEGの終わりを見逃してしまうというものです。 なので、ちゃんと4つの状態を遷移するように書き直しました。 const std = @import("std"); const fs = std.fs; const io = std.io; const os = std.os; const BUF_SIZE = 64 * 1024; const OUTPUT_FILENAME_PATTERN = "out{d:0>4}.jpg"; const JPEG_START0 = 0xff; const JPEG_START1 = 0xd8;

    Zigで配列をなめるときにはできるだけwhileでなくてforを使いましょうという話
    masterq
    masterq 2023/07/21
    "(forを使うと)配列の範囲をはみ出さないことが明確になるので、コードを読むときの脳の負荷が減るし、速いコードが生成されます"
  • 1