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

2012年の最初に書くプログラムは何でしょうか?」記事へのコメント

  • 私はコレ

    #include studio.h

    • by Anonymous Coward

      #include

      int main() {

                      return 0;

      }

      今年も実りはないということでよろし?

      • by Anonymous Coward

        なにを#includeしたのでしょうか?
        ふつう考えたら、上記プログラムには#includeは不要なはずですが、
        消えてしまったヘッダファイルの中に、じつは、すごいプログラムが
        書かれていて、returnまたは0にマクロ定義されているとか。

        • by Anonymous Coward

          つーか#include以前に、そもそもreturnが不要だろ
          ついでにいうとmainにいちいちint付ける必要もないし
          つまるところ

          main(){}

          で同じ動作するだろ

          どうせまたアレだろ?
          「returnが必ず必要とか」思ってるしったか君なんだろ?
          返り値がint以外のmain()もあるんだろうぜ?

          • そのへんの Linux で試してみたが、同じ動作にはならないみたいぞだぞ。

            % echo 'main(){}' | gcc -x c -
            % ./a.out
            % echo $?
            100
            % ./a.out 1 2 3
            % echo $?
            132

            • by Anonymous Coward on 2012年01月02日 19時48分 (#2075378)

              C99という仕様では、returnせずにmainの最後まで到達すると、return 0だとみなされます。

              親コメント
              • ご指摘ありがとうございます。不勉強をさらしてしまいました。

                echo 'main(){}' | gcc -x c -std=c99 -S -o - - してみるとたしかに movl $0, %eax がはさまってるなあ。

                親コメント
              • by Anonymous Coward

                たぶんC89もそうだったんじゃね? 歴史的経緯か何かで(K & Rの最初のサンプルを妥当にするためとか何とか)。あとreturnを省略できるとしてもmain関数だけだと思う。
                C11では禁止されてそうな気もするけど(いろいろ互換規定が削除されてC++同様になった)確認してない。

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...