ふたみなのです。 # 日下部陽一著「作ってわかるCプログラミング」を読んで勉強してます(^_^) From: "OOSATO,Kazzrou" <kazz@xxxxxxxxxxxxxx> Subject: [vine-users:055252] Re: emacs で C 言語をやるには ? Date: Thu, 7 Nov 2002 19:06:32 +0900 > > > return 0; がないのは確かに行儀よくないですが warning レベルの話, > > > > 行儀の問題ではなく、これは明らかに間違いです。 > > なにに照らして間違いなのかを言わないと....。 C の仕様書からすれば、望ましくない書き方だと思います。 http://www.denpa.org/~go/denpa/200208/from11.html に判りやすい解説があります。Harbison & Steel の Reference Manual(5th ed) の303頁から解説がありますが、 Standard C permits main to be defined with either zero or two parameters: int main(void) { ... } int main() { ... } /* also OK, but not recommended */ int main(int argc, char *argv[]) { ... } となってます。 > 関数が値を返さなかったときのふるまいは処理系依存ですし、main 関 > 数からの返り値を期待するかどうかは操作系依存ですし。 > > 型が省略された関数の型は (void) ではなく暗黙に int ですから、K&R > の最初の例題は「明らかに間違い」と言わなくてはならなくなります。 同303頁から、関連する部分を抜粋すると、 If the end of body of main is reached without returning, it is treated as if return 0; ware executed. Prior to C99, the return type of main was often omitted, defalting to int. This is no longer allowed. と書いてあります。ということで、「明らかに間違い」ということではなくて 「行儀が悪い」というレベルだと思います。K&R の前半は Tutorial であって Reference ではないですから、厳密さを要求するもんじゃないと思います。 > # 自分の意志で踊るなら全然問題ないでは? 御意。 -- ふ