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

もうやらなくていい昔のコーディングテクニックあれこれ」記事へのコメント

  • by Anonymous Coward

    //コメントの記述で叱られる

    • Re: (スコア:2, 興味深い)

      「//」コメントのことでしたら、コーディング規約で禁止されています。
      #使用言語はC言語です。
      #「もうやらなくていい」というより「使ってもよさそうなのに禁止」されています。

      禁止になった理由は、コメントの最後に「\」となるマルチバイト文字をつかってしまい
      (本当はコメントにしたくなかった)次の行までコメントとなってしまったからです。

      #こういうのを「馬鹿基準」と言ってる人もいますね。
      #低レベルな人に合わせて無駄な禁止事項が増えていくという。

      無駄なコーディング規約より「DRY原則遵守」で。
      • Re: (スコア:1, すばらしい洞察)

        by Anonymous Coward
        例に挙げられているケースだけで言えば,

        「コメントの最後に『\』となるマルチバイト文字を使ってはならない」

        よりも

        「『//』コメントは一切禁止」 もしくは 「日本語の『//』コメントは禁止」

        のほうが,わかりやすくて妥当なルールだと思いますが…. 「//」コメントを書くたびに禁止文字リストを使ってチェックしろとか,禁止文字を暗記しろとか言われるほうがむしろたまりません.

        そもそも,この場合で悪いのはマルチバイト対応が不十分なコンパイラであって,落とし穴にはまった人を「低レベル」呼ばわりするのは筋違いのように思います. 道具の側にくだらない制限があるなら,コーディング規約でくだらない制限をしなければならないのはやむを得ませんよね.

        P.S. 後学のためにどういうコンパイラと文字コードの組み合わせか教えてもらえませんかね?

        • by greentea (17971) on 2009年05月05日 16時41分 (#1559572) 日記

          そのバグ、ハマったことあります。

          Shift_JIS環境で作ったソースを、文字コード変換しないでそのままロケールがUTF-8の環境に持ち込み、
          Shift_JISのコードをUTF-8ロケールのままコンパイルしたら、なりました。
          詳しいバージョンまでは覚えてませんが、コンパイラはgcc 4.x.xだと思います。

          もっとも私の場合は、コンパイラがマルチバイトに対応してないなどといった話ではないと思います。

          # 改行がCRLFな環境で作ったテキストファイルを、改行がLFな環境で開いてfgetsしたら、
          # 末尾にLFだけでなく、CRLFが読み込まれるってのにもハマった。
          # なんであのマシン、nkf入ってないんだ……

          --
          1を聞いて0を知れ!
          親コメント

開いた括弧は必ず閉じる -- あるプログラマー

処理中...