• ベストアンサー

return 0; return 1; まで同じ

#include <stdio.h> int main() { printf("%d %c\n", 65, 65); return 0; }  コンパイル後は 65 A  return 1;も同じでした。 しかし  return 2;すると  Exited: ExitFailure 2  終了しました:出口の失敗2 となります。  2以上でしたら、出口が塞がるのでろうぐらいしかわかりません!?    どんなバクなのでしょうか!?  よろしくお願いします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

C 言語の仕事は「0 なり 1 なり 2 なりを返す」までであり, その値にどう対処するかは (「C のプログラム」としては処理を完全に終了しているので) C のあずかり知らぬところです. なので, 「どんなバクなのでしょうか!?」というのはあなたの使っている OS なりシェルなりなんなりに聞いてください.

Campus2
質問者

お礼

 ご回答ありがとうございます。 http://codepad.org/  でのコンパイルはバグ的な要因ある可能性がある との他の方からのご指摘がありまし。  現在  http://ateliereclair.blog.fc2.com/blog-entry-51.html  で行けそうとの回答を得ましたので、現在構築中です。 それでどうなるのか判断します。

Campus2
質問者

補足

ご回答ありがとうございます。  コンパイラ-ソフトは  http://codepad.org/ を使用しています。  

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.3

>http://codepad.org/ ためしてみましたが、return 1; でも Exited: ExitFailure 1 が出ますね。出なかったというのは、勘違いでは? 他の方も書いていますが、return の結果をどう使うかは使う側の問題です。

Campus2
質問者

お礼

 ご回答ありがとうございます。 http://codepad.org/  でのコンパイルはバグ的な要因ある可能性がある との他の方からのご指摘がありまし。  現在  http://ateliereclair.blog.fc2.com/blog-entry-51.html  で行けそうとの回答を得ましたので、現在構築中です。 それでどうなるのか判断します。

Campus2
質問者

補足

ためしてみましたが、return 1; でも Exited: ExitFailure 1 以上ですが 私のパソコンだと   添付ファイルが証拠です。  以下アドレスから確認ができます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14137842974

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

それはバグではなく、あなたが「このプログラムはエラー終了した」とプログラムを実行した相手に通知するようにコーディングした結果で、正常な動作です。 詳しいことは参考 URL の記事をお読みください。

参考URL:
http://www.geekpage.jp/programming/c/return-main.php

関連する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ってどんな働きをするんですか?

  • borlandについて

    こんばんは Borland C++ Compiler 5.5 を使っているのですが… _______________ |#include <stdio.h>      |←のようなプログラムをコンパイル |               | したら |int main(void) |1:インクルードファイル'stdio.h'を |{              | オープン出来ない | printf("Hello.\n");   |5:プロントタイプ宣言のない関数 | return 0;        | 'printf'の呼び出し(関数mein) |}              |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ と出てきますどうしたらよいでしょうか。

  • 配列について

    初歩的な質問ですいませんが、質問よろしくお願いします。 ◎1----------------------------- #include<stdio.h> int main(void) { char ss[10]="AB"; printf("ss=%s\n",ss); return 0; } ------------------------------------ ◎2-------------------------------- #include<stdio.h> int main(void) { char ss[10]; ss[0]='A'; ss[1]='B'; ss[2]=0; printf("ss=%s\n",ss); return 0; } ----------------------------------- ◎3------------------------------- #include<stdio.h> #include<string.h> int main(void) { char ss[10]; strcpy(ss,"AB"); printf("ss=%s\n",ss); return 0; } ----------------------------------- ◎4------------------------------- #include<stdio.h> int main(void) { char ss[10]; ss="AB"; printf("ss=%s\n",ss); return 0; } ---------------------------------- 以上4つのプログラムで、◎2と◎3は正常に動くと理解できたのですが、何故、◎1は正常に動き、◎4は「'const char [3]' から 'char [10]' に変換できません。」といったようなエラーが出てしまうか分かりません。 教えていただければ嬉しいです。

  • 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を用いたプログラムと同じ出力を得るにはどのようなプログラムに変えればいいのでしょうか?

  • return文について

    C言語を独学で勉強中です。 最初から分からないのがあったので、質問させていただきます。 #include <stdio.h> main() { printf("Hello World!!\n"); return(0); } return(0)を記入しなくてもエラーはでないのに、 なぜ必要なんですか? 参考書には何も書いてないので分かりません。 よろしくお願いします。

  • Cプログラミング 初歩

    #include <stdio.h> int main (void){ double num; printf("実数を入力して下さい:"); scanf("%lf",&num); printf("あなたは%fと入力しましたね\n",num); return(0); } のプログラミングがコンパイル出来ません↓ printf("あなたは%fと入力しましたね\n",num); をprintf("%f\n",num);のようにすると上手くいくのですが、 どうしたらコンパイルできるか分かる人はいますか?

  • 正確なあ値でしょうか!?

    http://codepad.org/cBK5A67i を使って以下をコンパイルしたところ! No.1 #include <stdio.h> void kansuu(); int main() { kansuu(); return 0; } void kansuu() { printf("kansuu de hyouji\n"); No.2 }  #include <stdio.h> void kansuu(); int main() { kansuu(); } void kansuu() { printf("kansuu de hyouji\n");   return 0; } 以上の  コンパイルの結果はNo.1、No.2とも  kansuu de hyouji  となりました。    No.2の結果は   正確な値でしょうか  それともバグでしょうか?  よろしくお願いします。

  • ポインタ定義は必要なんですか?

    #include <stdio.h> int main( void ) { int x; int *p; p = &x; printf("Address = %p\t\n", p ); return 0; } を #include <stdio.h> int main( void ) { int x; int p;←ここを上とはかえた p = &x; printf("Address = %p\t\n", p ); return 0; } にしたところコンパイル時に p = &x に関して 移植性のないポインタ変換と表記されますが 結果は同じだったのでポインタ定義というのは結局必要なんですか? 移植性のないポインタ変換とはなんなんですか? よければ詳しく教えてください

  • return 1

    #include<stdio.h> int fact(int num); int main(void) { int i; printf("Input figure freely:"); scanf("%d", &i); printf("%d", fact(i)); return 0; } int fact(int num) { if(num>0){ return num * fact(num-1); }else{ return 1; } } -------------------------------------------- 上のプログラムは再帰呼び出しを使った階乗計算の プログラムです。 func()関数内のreturn 1の意味をどなたか教えて いただけないでしょうか?

  • int とcharの使い方と違い

    教えてgooに投稿するのは初めてですがよろしくお願いします。 最近C言語を勉強し始めた初心者です。 ネットのサイトを見て独学でしています。 過去スレッドをさらっと見て聞きたいことが書いてなかったので投稿します。(同じスレッドがあったらすみませんOTL) #include<stdio.h> int main(void) { int str='a'; printf("str=%c\n",str); return0; } この上のプログラムでは str=a と出て、エラーが出ずにコンパイル出来ました。でも、 #include<stdio.h> int main(void) { int str[]="abc"; printf("str=%s\n",str); return0; } とするとエラーが出ます。 int とcharの使い方と違いについて詳しく教えてほしいです>< お願いします。

専門家に質問してみよう