おまいら!今日からC言語を学んでいくぞー!
■ このスレッドは過去ログ倉庫に格納されています
0348デフォルトの名無しさん
2005/09/28(水) 22:15:02mainの関数を宣言する時に、
>main()
と宣言した上で、
retur; による返り値を返さずにプログラムが終了すると、
コンパイラによっては警告を出してきます。
これは、main関数が
int main (void) または
int main (int argc, cha *argv[]) と定義されているためです。
この定義の意味はおおざっぱにいうと、
この関数の名称は main といい、
()の中の値を使って {}の処理を行い、
intの値を返す関数です。という意味になります。
ですから、int の値を返さないで終了しようとすると、
「値を返し忘れていませんか?」とコンパイラが心配してくれるのです。
ただし、main だけで int main と宣言していない時には、
これは値のない関数なのだろうと、納得するコンパイラもあります。
この場合は、return; による値がなくとも、
あるいは return; を使わずに終了していても、警告はされません。
また、int main ではなく void main と宣言した場合は、
void というものが「空っぽの値」という意味なので、
この main 関数は値が返って来ない関数です、という意味になり、
retur; で値を返すと、警告又はエラーになってしまいます。
ですから、main だけでの宣言は避けて、
int main と宣言して returnで値を返すか、
void main と宣言して return で値を返さないか、どちらかにするとよいでしょう。
■ このスレッドは過去ログ倉庫に格納されています