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

Windowsのメモ帳(notepad)に文字化けするバグ」記事へのコメント

  • 嬉しい (スコア:4, おもしろおかしい)

    by Anonymous Coward
    文字化けなんて日本人の、特に、マイナーなOSとかブラウザを使っている人の問題だと思っていたのに。
    英語で、しかもWindowsの標準のアプリを使用してる人にも文字化けがちゃんと起こってるって知って、とっても嬉しいです。

    文書の文字コードを求めて文字コードを総当たりする苦しみを思い知るがいいのさー。
    うちらは今更文字化けの要因が一つや二つ増えたところでどうってことないんじゃー。ぼけー。
    • Re:嬉しい (スコア:3, おもしろおかしい)

      でも、英語圏の人はUnicodeなんてなくなっちゃえばいいんだ~
      みたいなことを考えそうだ
      • by Anonymous Coward on 2006年07月08日 16時17分 (#974966)
        驚くべきことに、未だに、

        wchar_t orig[LENGTH];
        char ansi[LENGTH];

        for(int i = 0; i < LENGTH; i++)
            orig[i] = ansi[i];

        とかいうコードを書いている人もいますよね。
        ここまでくると笑うに笑えない・・・。
        親コメント
        • Re:嬉しい (スコア:1, すばらしい洞察)

          by Anonymous Coward on 2006年07月08日 17時10分 (#974988)
          そうですね。++は前置であるべきですね。
          親コメント
          • by Anonymous Coward
            前置と後置で違いがあるの?
            • by Anonymous Coward
              #974988 [srad.jp]自体は半分ジョークのつもりで書いたのですが…。

              ここが分かりやすかったのでリンクしておきます。 [fc2.com]

              ちなみに#974966 [srad.jp]の場面では、後置演算子はコンパイラによって最適化され、前置演算子を使用した場合と同等のコードが吐かれるかも知れません。
              • by taka2 (14791) on 2006年07月09日 11時03分 (#975213) ホームページ 日記
                ジョークの出来が悪いですね。

                確かに、C++ のクラスオブジェクトでは、前置の++/-- の方が、一次オブジェクトを生成しなくて済む分、後置演算子より効率が良いのは自明です。

                ですが、リンク先のページにも
                > 組み込み(ビルトイン)のスカラ型の場合はこれで問題ありません。
                と書いてある通り、今回のコード(整数型)では前置・後置のどちらでも問題ありません。

                CISCで一昔前の(最適化が弱い)コンパイラだと、CPUにポストインクリメント命令・プリデクリメント命令があったりしたので、
                ・++は前置より後置の方が速い
                ・--は後置より前置の方が速い
                ということはありました。後置--は前置--にしろって言われたものですが、++ の場合は後置が基本。

                まあ、その当時的にコンパイラの最適化を宛にしないコードとなると、つきつめていくと、

                short i = LENGTH;
                wchar_t *dst = orig;
                char *src = ansi;
                do {
                   *dst++ = *src++;
                } while (--i != -1);

                みたいな、ちょっと回りくどいコードをわざわざ書いて、

                label:
                   move.b (a0)+,d1
                   move.w d1,(a1)+
                   dbra.w d0, label

                とコンパイルさせたものです。ほとんど C のコードとアセンブラ出力が1:1対応の世界。

                今時のコンパイラの最適化だと、たぶん#974966 [srad.jp]のコードでも、問題ないコードを吐くと思います。
                親コメント
              • by Anonymous Coward
                前置・後置問題とUnicodeとの関連がわからないのですが・・・

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...