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

「情報処理」教員免許の試験問題」記事へのコメント

  • by Anonymous Coward
    うちの大学でも void main って教えてますよ。
    教科書にそう書いてあるから。
    もう、どうにでもなれって、感じですね。
    情報処理学会のどこかの部会かなんかが出した、
    情報教育の教科書でも、void main ってなってますよ。
    動きゃいいんじゃないの?
    もう、知らんって感じ。
    • 数学由来な情報科学的にはvoid mainが正しいらしい。なぜなら、

      メソッドは副作用があり、戻り値がない。エラーはExceptionなどの別の方法で通知。

      ファクション(関数)は副作用がなく、戻り値がある。戻り値の算出に引数以外に依存すべきではない。

      というのが「正しい」姿だからだそうだ。で、mainはメソッドなので、voidでなければいけないそうだ (うちのオブジェクト指向論教授談)。

      exit(1)の1ってmain()の戻り値やん、と反論したら、いやー
      returnじゃないから
      • UNIX 系の C の場合,そもそも main() って,なんとかcrtかんとか.o というスタートアップルーチン(?)からコールしている関数に過ぎないのだけれど.というわけで,引数と戻り値については,単になんとかcrtかんとか.o との摺合わせ,という話になるのではないか,と思います.

        • サブジェクトの通り
          • サブジェクトの通り :-)

            ま,この試験の場合は規格の方に従うべきで,特定の実装に依存するのは好ましくないとは思いますが. ま,UNIX 系 OS ではそういう仕組みになってることが多いので,void main(void) でも矛盾しない実行ファイルが生成できる,というだけの話.

            • UNIXなら、現実の実装も int main です。
              あくまでも。
              そもそも、最初のC言語にvoidはないし。
              • 問 ?
                ----------
                #include <unistd.h>

                void Main ( void );

                void _start (int argc, char *argv[])
                {
                        write ( 1, "_start\n", 7 );
                        Main();
                        _exit ( 0 );
                }

                void Main ( void )
                {
                        write ( 1, "hello,world\n", 12 );
                }
                ----------

                (1)Linux において,このプログラムを
                    $ gcc -Wall hello.c -S -o hello1.s
                    $ gcc hello1.s -c
                    $ ld hello1.o -Bstatic -lc -o hello
                と,コンパイ
              • 動く動かないの話だけだったら、
                char main[] = { 機械語... };
                だって、多くのマシン/OSで動くでしょ。
                DOSでも動くし。
              • 1984 年の「醜い C コンテスト」入賞作品 [ioccc.org]

                ...というだけではナンなので。 :-)

                今回のトピックは試験問題が遡上にあがっています。 試験というからには前提となる「ルール」があるはずで 日本国の教員資格の試験であれば、それは JIS 規格であるべきでしょう。 gcc とか (以下略) の個別の実装の話を出すのは (カルマを減らす or ちゃちゃいれ or 他人をおちょくる or so on が目的でなければ) そろそろ潮時かな~と愚考する次第です。

                # もっともこの話題の発端は Oliver 氏の伝えるところの
                # 教授氏のmath-out [tuxedo.org]な話から始まっているので
                # 結局はこの教授氏を説き伏せるのにどちら (規格 or 実装) が
                # 有効かという話に帰結したりするのかも。

                親コメント

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...