C言語学習中の初期の問題:「Hello World」プログラムと関数の違い、return 0の意味とは?
- 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; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?
- kqzwxecrvt
- お礼率21% (3/14)
- その他(インターネット・Webサービス)
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
昔は void main main でOKって風習があったけど 最近は int main にして return(0) として正常終了の値を返すのが一般的な書き方です。 もちろんエラーがあって終了する場合は仕様の段階でreturnで返すエラーコードを決めてそれを返す処理をします。 C言語の規格の規定としてint mainと決められています。 main(viod)/main()ですが起動時に引数を受け取らないならこれでいいでしょう。 ただし起動時に起動オプションを想定している場合は (int argc, char *argv[]) とする必要があります。
その他の回答 (2)
- bardfish
- ベストアンサー率28% (5029/17765)
int main()とした場合はmain関数の最後にreturn()はあった方がよいでしょう。ただし「Hello World」程度のプログラムならあってもなくても構わない。 もう少し高度な内容になってくるとmain()の戻り値が必要となり重要な意味を持たせることが可能です。 WindowsのコマンドプロンプトやMS-DOSではシステム環境変数である「ERRLEVEL」から直前に実行したプログラムの戻り値を取得することが可能で、処理結果次第でバッチ処理で分岐させることが可能です。 最も簡単な例としては、起動時にファイル名を指定したときに指定されたファイルが存在する場合と存在しない場合。 ファイルが存在する場合はバッチで複数のプログラムを順次呼び出しするが、ファイルが存在しない場合はメッセージを表示してバッチ処理を終了させるようなときに「int main()」は意味を持ちます。
関数の型の宣言です。 手前の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; } というようなプログラミングを実行するにはどうすればいいでしょうか
- 締切済み
- その他(インターネット・Webサービス)
- プログラミング言語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#
- C言語について大変初歩的なことなのですが…
先日C言語でのプログラミングを勉強し始めようと思いたち、 「世界一わかりやすいCプログラミングの授業」という本を買ったのですが、 書いてあった、 #include <stdio.h> main() { printf("hello,world\n"); } というプログラムを作ったのですが、エラーが起きました。 そこで「C言語入門」と検索し調べたサイトでは、 mainの前にintと入っていたのでそうしてみたところエラーがおきませんでした。 本が間違っているとは思えないのですが、これはどういう事でしょうか、教えてください。 まだなんの知識もないのでお手数ですがそこを考慮していただくとありがたいです。
- ベストアンサー
- C・C++・C#
- c言語始めようと思って挑戦しています
c言語に必要なソフト eclipseのプラグインのc言語のやつと visiual c++ 2008 express edition が一応あります。 それで一番 有名らしい #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } がビルドエラーになります。 上の二つのソフト以外になにか必要なものがあるのでしょうか? かなりの初心者です。
- 締切済み
- C・C++・C#
- 現在、C言語を習っています。
現在、C言語を習っています。 今、関数を勉強しているんですがわからない文があるので正解の文を教えてください。 #include <stdio.h> int main (void) { int a=123; doubke b=4.5; printf("%d\n○○" ,a,b); return 0; } ○に入る言語や文が間違っていたら教えてください。
- ベストアンサー
- その他(OS)
- 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・C++・C#
- C言語プログラミングの文字列を出力するプログラムについて
ちょっとお聞きしたいのですが、 #include<stdio.h> void main(void) { printf("Hello World\n"); } と書いてコンパイルしたら インクルードファイル ’stdio.h’をオープンできない って出て Hello Worldってでない、、、 ちゃんとBorlandもダウンロードしたしcd設定もしたんだけど、 何が悪いのかわかりません。
- ベストアンサー
- その他([技術者向] コンピューター)