アカウント名:
パスワード:
UNIX 系の C の場合,そもそも main() って,なんとかcrtかんとか.o というスタートアップルーチン(?)からコールしている関数に過ぎないのだけれど.というわけで,引数と戻り値については,単になんとかcrtかんとか.o との摺合わせ,という話になるのではないか,と思います.
あ
サブジェクトの通り :-)
ま,この試験の場合は規格の方に従うべきで,特定の実装に依存するのは好ましくないとは思いますが. ま,UNIX 系 OS ではそういう仕組みになってることが多いので,void main(void) でも矛盾しない実行ファイルが生成できる,というだけの話.
更に言えば、DOS/Windows だって int main ですね。 但し「void でも構わない」事が公式に認められているだけで。
void でも構わないとベンダが言明している UNIX のコンパイラは寡聞にして聞いたことがありません (探せば見つかるのかも知れませんが)。
# ちなみに C# では main の戻り値は int でも void でも # 構わないことになっていたと思います。 # この辺は Java の void な main の向うを張ったのか # Microsoft の C 方言の名残なのかは意図不明。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
みんなで void main (スコア:0)
教科書にそう書いてあるから。
もう、どうにでもなれって、感じですね。
情報処理学会のどこかの部会かなんかが出した、
情報教育の教科書でも、void main ってなってますよ。
動きゃいいんじゃないの?
もう、知らんって感じ。
Re:みんなで void main (スコア:2, 興味深い)
メソッドは副作用があり、戻り値がない。エラーはExceptionなどの別の方法で通知。
ファクション(関数)は副作用がなく、戻り値がある。戻り値の算出に引数以外に依存すべきではない。
というのが「正しい」姿だからだそうだ。で、mainはメソッドなので、voidでなければいけないそうだ (うちのオブジェクト指向論教授談)。
exit(1)の1ってmain()の戻り値やん、と反論したら、いやー
returnじゃないから
Re:みんなで void main (スコア:1)
UNIX 系の C の場合,そもそも main() って,なんとかcrtかんとか.o というスタートアップルーチン(?)からコールしている関数に過ぎないのだけれど.というわけで,引数と戻り値については,単になんとかcrtかんとか.o との摺合わせ,という話になるのではないか,と思います.
あ
規格で決まってるの (スコア:0)
規格は規格,実装は実装 (スコア:1)
サブジェクトの通り :-)
ま,この試験の場合は規格の方に従うべきで,特定の実装に依存するのは好ましくないとは思いますが. ま,UNIX 系 OS ではそういう仕組みになってることが多いので,void main(void) でも矛盾しない実行ファイルが生成できる,というだけの話.
実装なら、現実の実装 (スコア:0)
あくまでも。
そもそも、最初のC言語にvoidはないし。
Re:実装なら、現実の実装 (スコア:2)
更に言えば、DOS/Windows だって int main ですね。 但し「void でも構わない」事が公式に認められているだけで。
void でも構わないとベンダが言明している UNIX のコンパイラは寡聞にして聞いたことがありません (探せば見つかるのかも知れませんが)。
# ちなみに C# では main の戻り値は int でも void でも
# 構わないことになっていたと思います。
# この辺は Java の void な main の向うを張ったのか
# Microsoft の C 方言の名残なのかは意図不明。