パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

汚いソースを見たら?」記事へのコメント

  • 仕事で扱うソースだと、不用意に書き換えることは出来ないのよ。
    あんまりサイズが大きくなければ、「書き直したほうが早い!」としちゃうこともあるけど、
    何人月かかかりそうなのはそうも行かなくてね…

    そういう場合に出来ることは、「吐く」ことぐらいだよなあ…
    •  理由なしには1文字足りとも修正出来ないのよ…
       んで、修正する際も、見栄えや構造を優先するのではなく、その場での修正行数や、試験項目の少ない修正を選ばされるから、その調子で10年もメンテされたソースは大変さぁ…
      #修正履歴もすべてコメントで残すから、もとの倍以上のソースサイズなんてザラだし。
      #書き直した方が早く(速く
      • こんな事がありますた (スコア:2, おもしろおかしい)

        by Anonymous Coward on 2002年10月30日 11時46分 (#192056)
        とあるファーム開発で貰ったソース。

        unsigned char x;
        ...
        if(x0){
        ...

        漏れ「あの、ヘンなコードがあるんですが」
        上司「あぁ、動いてるモノだから直さないでね」
        漏れ「...( ゚Д゚)ポカーン」
        親コメント
        • by ponpon (8909) on 2002年10月30日 13時37分 (#192142)
          参考までに。
          日曜プログラムにはunsigned char に数を入れて使いますよ。
          #つっこみどころ、違いますね。

          (unsigned char) < 0
          ( ゚Д゚)ニョガーン
          #使い方にもよりますが、よく動いてますね。
          親コメント
          • その部分って

            if (x != 0)
            と同じですよね。まあたまたま動くのは不思議じゃないかも。ただ、そんなことを書くスキルの人と一緒に仕事をしたくないというのはあるかも知れません。ましてやその修正を拒否されるってのは信じがたいですね。

            --
            vyama 「バグ取れワンワン」
            親コメント
            • unsigned char だからその取り得る値は 0~255
              x を実際の値に置き換えてみると
              if (0 0) は False
              if (1 0) は False
              ・・・
              if (255 0) は False
              となってこの if文は then節をコメントにしているだけです。
        • メモリ節約や処理量低減の為に、明示的に8bit型を使うために、コンパイラの吐いたアセンブラソースを見て検証した上で、あえてこのようなコードを使うことがあります。(ワンチップ系はRAMが数KB以下も珍しくないし、8bitプロセッサで16bit演算なんかバンバン使われた日には...)

          もっとも、紛らわしいことは確かなので、

          #define BYTE unsigned char

          BYTE a;

          とでもして、数値だぞと主張した方がメンテはしやすいですし、組込みコンパイラでも気の利いたものはバイト型整数なんてものがサポートされています。
          親コメント
        • 間違い。

          x0→x<0

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

処理中...