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

ZDNetのポインタ解説記事で勘違い」記事へのコメント

  • プログラマの面接の時にこの記事を見せて、3分以内に問題を指摘できない奴は採用しないとか。
    --
    署名スパムがウザい?アカウント作って非表示に設定すればスッキリさ。
    • by Anonymous Coward
      どちらかというと、来年度の新人候補に「こんな奴がチーフエンジニアとして生きている」IBMのほうを蹴飛ばす、という方に使われると思う…

      # あぁ、新入社員がCの教員を苛めて苛めて泣かせるぐらいだったのは
      # 太古の昔の話なのか… orz
      • Re: (スコア:1, 興味深い)

        by Anonymous Coward
        スコア順で下のスレッドを見るとSWGの人とのことで、普段はWASやDB2のプロモーションをされていた方なのだろうとお見受けしました。

        SWGの人ですと普段プログラミングは機能確認程度で主に製品の機能を学習し、既存のバグやFixPack等に詳しい人ではないかと思います。
        日本IBMは普段はBP、SSO、Global Resourceに開発を割り振る人たちで実際にプログラムを書く人たちではありませんが、なぜプログラミングの解説記事など引き受けたのでしょう。

        最近、Seasar2のひがやすおさんとPerlの弾小飼さんの間にて、誰が書いても同じコードとというものが議論になっておりました。
        • by Anonymous Coward

          このような会社のチーフエンジニアなら迷わずポインタのような難しい概念を使うプログラミングは間違いです、誰が書いても同じコードにするには誰でも理解できる配列使用の義務化とポインタ使用の禁止をコーディング規約にするべきですといった解説を行うべきではなかったのでしょうか。

          ポインタの概念なしでは hello world すら書けない C/C++ は論外ちゅーこと?

          • by pharmer (32222) on 2008年04月01日 21時04分 (#1323462)

            ポインタの概念なしでは hello world すら書けない C/C++ は論外ちゅーこと?

            一応書けるよ。
            printf()は高機能かつ複雑なので
            本当の初学者には向いてないと常々思ってたんだけど、
            いい機会なのでさらしておこう。
            このバージョンのほうが理解するのに必要な知識が少ないはず。

            #include<stdio.h>
            int main(void)
            {
                putchar('h');
                putchar('e');
                putchar('l');
                putchar('l');
                putchar('o');
                putchar(' ');
                putchar('w');
                putchar('o');
                putchar('r');
                putchar('l');
                putchar('d');
                putchar('!');
                putchar('!');
                putchar('\n');
            }
            親コメント
            • return 0; を忘れました。orz
              コンパイルするときは忘れずに追加してください。
              親コメント
              • Wikipediaによると (スコア:1, 参考になる)

                by Anonymous Coward on 2008年04月01日 23時28分 (#1323556)
                C99とC++98では、main関数に限り、そのmain関数の戻り値の型がintであればreturn 0;があったと見なされる(X3010 9頁 5.1.2.2.3、X3014 35頁 3.6.1 5節参照)
                親コメント
              • by Anonymous Coward
                そこで void main() ですよ。
            • by Anonymous Coward
              あまいな。 putchar('h')は関数呼出しなので、putcharは関数へのポインタでなくてはいけません(JISX3010なら6.5.5.2)。なので、真の理解のためにはやはりポインタは必要なのです。
              • 手元の規格票では6.5.5.2という項目が無く、「6.5.5 乗除演算子」「6.5.6 加減演算子」となっていますが、何を指していますか? 「7.19.7.9 putchar関数」のこと?

                親コメント
              • by Anonymous Coward
                あまいのは貴方

                putchar(c) は putc(c,stdout) と同じであり、
                putc() はマクロで実装することが規格上許されています。

                つまり処理系依存ですが、putchar('h') は関数呼出しとならない可能性があります。

                #よって putc() や putchar() への関数ポインタは取得できない可能性があります。
                #関数ポインタが必要な場合はポータビリティを考慮して fputc() を使いましょう。
                ##次に貴方は main() と叫ぶ
              • by Anonymous Coward
                ん?

                int putc(int c, FILE *stream);

                がどうかしたの?
            • by Anonymous Coward
              かわいい顔が並んでるようにしか見えないので、
              初心者にはとっつきやすいということでしょうか?

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

処理中...