• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行結果の判定の”良否”が分かりません!?)

実行結果の判定の”良否”が分かりません!?

このQ&Aのポイント
  • 実行結果の判定が分からず、bcc32のセットアップが成功したかわかりません。
  • example9.cのプログラムを試しに実行したところ、ファイルが開けないという警告が表示されました。
  • 参考書にはfopenできないと出るはずなのに、パラメータが使用されていないという警告が表示されました。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>パラメータ 'argc' は一度も使用されない(関数 main )・・・ 2行目で、argcが宣言されていますが、それ以降でどこでも使われていません。 ということで、文字通りの意味のメッセージです。 警告メッセージですが、この場合は使っていないのは意図的なので、特に気にする必要はありません。 で、bcc32 ~~~.c で行うのはコンパイルです。 コンパイルとは ~.c というソースファイルから ~.exe という実行ファイルを作ります。 bcc32 を実行した後、dir とすると、 example9.exe example9.obj example9.tds というファイルが出来ているのがわかると思います。 example9 と打ち込んで実行してください。 ~.obj と ~.tds は、単純なコンパイル&実行の場合は不要です。

Campus2
質問者

お礼

すみません、お返事が遅くなりました。 そうですね!基本的な、コンパイルがされていないので、実行できない のは当たり前のことですね^^ gccソフトが古くて、OS7以降に未対応なので、困っています。  Visual Studioもいまいちやり方がわからないので困っています。  なので理論的な勉強しかできません_ _  ありがとうございました。  今後ともまたバカない質問するので、よろしくお願いします。  

Campus2
質問者

補足

 ありがとうございます。 現在ご回答を解析中です。  しばらくお待ちください。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

「コンパイルの結果」 と 「コンパイルしてできた実行ファイルを実行したときの結果」 を分けて考えてください。 bccを始め、Cコンパイラは「コンパイルするだけ」のコマンドです。 bcc32 ~ で表示されるのは「コンパイルの結果」です。 > 以上example9.cの実行結果は、 参考書には fopen dekinai と出ています。 は、「コンパイルしてできた実行ファイルを実行したときの結果」です。 コンパイルしただけ、実行していないのですから、出るわけがありません。 codepadは、コンパイル後、実行して、その結果を表示していますが、これは特殊な例です。 それから。 コンパイルの結果表示には「エラー(Error)」と「警告(warning)」があります。 エラーは「間違いが酷くて、コンパイルできない」という意味です。 例えば > Line 8: error: redefinition of 'y' C言語では、変数定義は、有効範囲で1回だけ、と決められています。 それを、2回やろうとしているので、「再定義するのは間違っている。だからコンパイルできない」というエラーを出します。 対処方法は、エラーの内容を確認して、正しいプログラムに直すことです。 場合によっては、コンパイラのオプションを正しく指定する、ということもあります。 警告は「C言語としては間違っていないから、コンパイルはできる。でも、少し変な箇所があるけど大丈夫ですか?」という意味です。 > 警告 W8057: パラメータ 'argc' は一度も使用されない(関数 main ) main関数にargcというパラメータ(引数)が定義されています。 ですが、プログラム中でargcは使われていません。 パラメータは、関数に値を渡すためのもので、その値が必要だから定義しているはずです。 (argvは、fopenに指定するファイル名に使うために必要です) 「必要なはずなのに、使っていない。これは変ではないですか?」 というのが警告の主旨です。 ですが、定義しただけで使わない、というだけでは、間違いではありません。 ですから、コンパイル自体は終了し、実行ファイルが作られます。 対処方法は、「内容をよく読んで理解し、プログラムを直すか、無視するか決める」です。 main関数の引数は、この形に決められているからこうしている。 だから、使わなくても別に構わない。 よって、無視する   というのも1つの答えです argcには、コマンドライン引数の数が入る。 argv[1]を使うのなら、argv[1]に正しい値が入っているかどうか、確認した方がよい。 よって、 argc でコマンドライン引数の数を確認して、argv[1]が有効かどうか判定する、というプログラムに修正する   というのも1つの答えです。 別の質問で見付けた読み物なのですが 「あなたがプログラムを理解できない10の理由」 http://builder.japan.zdnet.com/off-topic/sp_10-reasons-programming-2008/ エラーメッセージへの対処とか、これまでのあなたにあてはまるものが多いと感じました。

Campus2
質問者

補足

ありがとうございます。 現在ご回答を解析中です。  しばらくお待ちください。

関連するQ&A

専門家に質問してみよう