質問: int main()、void main()、void main(void)、int main(void) 今日、大学でc言語の講義の時間、先生が、 #include void main(void){ } と宣言してプログラムを書くと教えていました。 main関数には、 main() void main() void main( void ) int main() int main( void ) と、人によりいくつかの描き方があったりします。 どれが本当は正しいのでしょうか? void mainはすべきではないとなんかの本で読んだのですが・・。
回答: 通称c89という以前の言語規格(現行コンパイラの多くが準拠)では、下記のいずれかが正しい。 int main(int argc, char *argv[]) int main(void) 但し、最新のc言語規格(通称c99)では、 or in some other implementation-defined manner. となっているので、処理系が戻り値のvoidを認めていればvoidも可。 # 組込み系などで戻り値を使わない環境もあるためでしょうか。 なので、コンパイラのマニュアルで戻り値のvoidにしていい/しろと書いてない限り、 voidは言語仕様的には正しくない。(でも動くものもある)