アカウント名:
パスワード:
で、mainはメソッドなので、voidでなければいけないそうだ (うちのオブジェクト指向論教授談)。
自己フォロー。
教授氏の言わんとするところは、main() が関数であるためには、
int main(int argc, char **argv) { return argc; }
# じゃあ isprint(3) は locale の状態に依存するから # void じゃないといけないって事?
いや、引数だけでなんとかしろっていうから。
つーか、C言語に「UNIXの方言」っていう表現もなー。
# Win な若人に「この bzero() って何ですか?」って # 聞かれたときには「時代は変わった」と思いましたです。 # まあ書いた人にも「今時なら memset() 使えよ」とか # 思いましたけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
みんなで void main (スコア:0)
教科書にそう書いてあるから。
もう、どうにでもなれって、感じですね。
情報処理学会のどこかの部会かなんかが出した、
情報教育の教科書でも、void main ってなってますよ。
動きゃいいんじゃないの?
もう、知らんって感じ。
Re:みんなで void main (スコア:2, 興味深い)
メソッドは副作用があり、戻り値がない。エラーはExceptionなどの別の方法で通知。
ファクション(関数)は副作用がなく、戻り値がある。戻り値の算出に引数以外に依存すべきではない。
というのが「正しい」姿だからだそうだ。で、mainはメソッドなので、voidでなければいけないそうだ (うちのオブジェクト指向論教授談)。
exit(1)の1ってmain()の戻り値やん、と反論したら、いやー
returnじゃないから
Re:みんなで void main (スコア:2)
Re:みんなで void main (スコア:2)
自己フォロー。
教授氏の言わんとするところは、main() が関数であるためには、
のように「return の値は引数だけに依存すべき」だという事ですね?# じゃあ isprint(3) は locale の状態に依存するから
# void じゃないといけないって事?
envp (スコア:0)
Re:envp (スコア:2)
差し支えなければ extern char **environ か getenv(3) を使ったほうがいいでしょう。
Re:envp (スコア:0)
つーか、C言語に「UNIXの方言」っていう表現もなー。
Re:envp (スコア:2)
(「引数だけ」に依存した return の例示なら argc で十分でしょう?) まあ気持ちは分からなくもないんですが これだけ C/C++ が普及 (特に Windows) するとねぇ...。
# Win な若人に「この bzero() って何ですか?」って
# 聞かれたときには「時代は変わった」と思いましたです。
# まあ書いた人にも「今時なら memset() 使えよ」とか
# 思いましたけど。