C言語学習中の初期の問題:「Hello World」プログラムと関数の違い、return 0の意味とは?

このQ&Aのポイント
  • C言語学習中の初期の問題として、「Hello World」という有名なプログラムについて質問があります。
  • 具体的には、main関数の定義方法として「int main(void)」「int main()」「main()」「main(void)」の4つの違いについて知りたいです。
  • また、return 0;文の意味についても説明してほしいとのことです。
回答を見る
  • ベストアンサー

 現在、私はC言語を学んでいます。

 現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • doran357
  • ベストアンサー率24% (23/93)
回答No.2

昔は void main main でOKって風習があったけど 最近は int main にして return(0) として正常終了の値を返すのが一般的な書き方です。 もちろんエラーがあって終了する場合は仕様の段階でreturnで返すエラーコードを決めてそれを返す処理をします。 C言語の規格の規定としてint mainと決められています。 main(viod)/main()ですが起動時に引数を受け取らないならこれでいいでしょう。 ただし起動時に起動オプションを想定している場合は (int argc, char *argv[]) とする必要があります。

その他の回答 (2)

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.3

int main()とした場合はmain関数の最後にreturn()はあった方がよいでしょう。ただし「Hello World」程度のプログラムならあってもなくても構わない。 もう少し高度な内容になってくるとmain()の戻り値が必要となり重要な意味を持たせることが可能です。 WindowsのコマンドプロンプトやMS-DOSではシステム環境変数である「ERRLEVEL」から直前に実行したプログラムの戻り値を取得することが可能で、処理結果次第でバッチ処理で分岐させることが可能です。 最も簡単な例としては、起動時にファイル名を指定したときに指定されたファイルが存在する場合と存在しない場合。 ファイルが存在する場合はバッチで複数のプログラムを順次呼び出しするが、ファイルが存在しない場合はメッセージを表示してバッチ処理を終了させるようなときに「int main()」は意味を持ちます。

noname#108260
noname#108260
回答No.1

関数の型の宣言です。 手前のintは整数型を返す、と言う意味でvoidは引数は型無であるという意味です。 mainの場合は特に宣言しなくてもエラーになりません。 確か定義済みだった気がします。 returnは関数を終了して返り値を返します。 プログラム全体が終わるので目に見えた効果は確かにありません。 詳しくは関数の勉強で習うところです。 問題は発生しませんが、礼儀として全部書くことを進めます。

関連するQ&A

  • C言語プログラミングについて

    #include <stdio.h> int main(void) { printf("hello,world\n"); } □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ #include <stdio.h> int main(void) { printf("hello"); printf(",world"); printf("\n"); } 上の2つのプログラムをコンパイルするとどのような違いが生じるんですか??printfってどんな働きをするんですか?

  • Visual C++ 2008 Express Edition

    Visual C++ 2008 Express Editionをダウンロードしたのですが、使い方が全く分かりません。C言語を学習しています。 例えば #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; } というようなプログラミングを実行するにはどうすればいいでしょうか

  • C言語初心者です。

    C言語初心者です。 1^2-2^2+3^3-4^2…+99^2-100^2の値を求めるプログラムを作成したいのですが上手くいきません。 どこが足りないのですか? #include <stdio.h> int main(void) { printf("%d", 1^2 - 2^2 + 3^2 - 4^2 … + 99^2 - 100^2); return (0); } よろしくお願いします。

  • C言語

    以下のようなhello.cがあります。 include<stdio.h> int main(void) { printf("Hello World! \n"); return 0; } gcc -E hello.c と打つとプリプロセッサが表示されます。 課題はこの中からprintfに関するものを見つけ、読み取れることを説明せよとのことです。 問題の意図と解き方がわかりません。 よろしくお願いします。 環境はwsl ubuntu です。

  • プログラミング言語Cとプログラミング言語C++

    プログラミング言語Cとプログラミング言語C++の違いって何ですか? あと、プログラミング言語C++についていくつか質問があります。 #include <iostream> using namespace std; void main(){ cout << "Hello world!" << endl; } このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? using namespace stdって何ですか? あと、 cout <<"Hello world!"って何ですか?

  • C言語について大変初歩的なことなのですが…

    先日C言語でのプログラミングを勉強し始めようと思いたち、 「世界一わかりやすいCプログラミングの授業」という本を買ったのですが、 書いてあった、 #include <stdio.h> main() { printf("hello,world\n"); } というプログラムを作ったのですが、エラーが起きました。 そこで「C言語入門」と検索し調べたサイトでは、 mainの前にintと入っていたのでそうしてみたところエラーがおきませんでした。 本が間違っているとは思えないのですが、これはどういう事でしょうか、教えてください。 まだなんの知識もないのでお手数ですがそこを考慮していただくとありがたいです。 

  • c言語始めようと思って挑戦しています

    c言語に必要なソフト eclipseのプラグインのc言語のやつと visiual c++ 2008 express edition が一応あります。 それで一番 有名らしい #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } がビルドエラーになります。 上の二つのソフト以外になにか必要なものがあるのでしょうか? かなりの初心者です。

  • 現在、C言語を習っています。

    現在、C言語を習っています。 今、関数を勉強しているんですがわからない文があるので正解の文を教えてください。 #include <stdio.h> int main (void) { int a=123; doubke b=4.5; printf("%d\n○○" ,a,b); return 0; } ○に入る言語や文が間違っていたら教えてください。

  • C言語について

    #include <stdio.h> int main(void) { printf("123456\tABC DEFGHIJK\n"); printf("2006/4/14\n"); printf("programing\n"); } のprintfをすべてputsに書き換えてコンパイル・実行すると、 #include <stdio.h> int main(void) { puts("123456\tABC DEFGHIJK\n"); puts("2006/4/14\n"); puts("programing\n"); } になると思うんですけど、そのputsを用いて上のprintfを用いたプログラムと同じ出力を得るにはどのようなプログラムに変えればいいのでしょうか?

  • C言語プログラミングの文字列を出力するプログラムについて

    ちょっとお聞きしたいのですが、 #include<stdio.h> void main(void) { printf("Hello World\n"); } と書いてコンパイルしたら インクルードファイル ’stdio.h’をオープンできない って出て Hello Worldってでない、、、 ちゃんとBorlandもダウンロードしたしcd設定もしたんだけど、 何が悪いのかわかりません。

専門家に質問してみよう