• ベストアンサー

コンパイル時のエラーについて教えてください

よろしくお願いします。現在、Borland社のC++compiler5.5を使ってます。プログラムファイル名 は、「hello.c」です。 1: #include <stdio.h> 2: 3: int main(void) 4: { 5: printf"(hello,world"); 6: return 0; 7: } このプログラムをc:\borland\bcc55\lessonの「lesson」の中に入れてます。コマンドプロンプトで、c:\borland\bcc55\lessonに移動してから,bcc32 hello.cを実行すると, 1、エラーE2040 hello.c 1:宣言が終了していない。 2、エラーE2206 hello.c 1:不正な文字 "#"(0×23) と出ます。 何度やり直しても、同じ結果が出ます。間違いに気づかないのですが、詳しい方、ご指摘をお願いします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.14

★結果報告からすると、全て正常にコンパイルできています。 ・前は、『bcc32 hello.cpp』でエラー『不正な文字'#' (0x23)』が出ていましたが、  今は出ていませんね。これが正常です。 ・また、『警告 W8065』は『#include <stdio.h>』をインクルードしていないので  出てくる正常な警告メッセージです。 ・なぜ、警告メッセージが出るかというと『printf』関数を使うには、その型などの  プロトタイプ宣言が必要だからです。→型や引数をチェックするために。(規格上) ・よって、結果報告の 1 ~ 3 は正しい警告メッセージです。問題ありません。 ・仮に『extern int printf( const char *format, ... );』の1行を『#include』  の代わりに先頭に追加すれば、警告メッセージは出なくなるはずです。→確認! ・これは、『#include <stdio.h>』ファイルの中で定義されている1行ですので、  必要な『printf』関数の部分だけを宣言すると警告メッセージは出なくなるのです。 ・以上。不審な点はどこも見当たりません。→すべて正常です。 最後に: ・結果報告の 1 ~ 4 はすべて実行可能なプログラムは出来ますよね。→確認! ・そして、どれを実行しても正常な実行結果が得られたはずですよね。→再確認! ・これで、『hello.c』ファイルも正常にコンパイルできましたので、問題は解決  しましたよ。→これで、まともな『C』の学習が出来ます。良かったですね。 ・以上。アドバイスを終わります。頑張って下さい。さようなら。

noname#220054
質問者

お礼

数々のご指摘とアドバイスありがとうございます。1つ1つの確認の仕方や、その内容の説明など、とても参考になりました。 これからの学習に大変助かります。今まで、知らなかったことなどずいぶんと吸収することができました。 最後の解決までお付き合いしていただき感謝しています。大変お手数をおかけしました。 ありがとうございました。

その他の回答 (13)

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.3

誤 5: printf"(hello,world"); 正 5: printf("hello,world");

noname#220054
質問者

お礼

ご指摘ありがとうございます。「"」の入れる場所を理解することができました。

noname#220054
質問者

補足

回答ありがとうございます。手元にある、テキスト本でよく確認したら、" の位置が間違っていました。ただ、修正したのですが、直りませんでした。ほかに何か原因があるようです。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

「1:」とか行番号表示の部分を、ソースに含めていると、質問文みたいなエラーが発生しますね。 削ってみては。もしそうならですが。

noname#220054
質問者

お礼

アドバイスありがとうございます。いろいろ試した結果、ご指摘のとおり、行番は入れないほうが良い結果が得られました。これからは行番をつけないで、プログラミングするようにします。

noname#220054
質問者

補足

回答ありがとうございます。ご指摘のとおり、行番を削ってみたのですが直りませんでした。ほかに原因があるようです。

  • phototon
  • ベストアンサー率26% (222/841)
回答No.1

5: printf"(hello,world"); あきらかにここなのでは

noname#220054
質問者

お礼

アドバイスありがとうございます。ご指摘のおかげで、「"」をつける本来の場所がわかるようになりました。

noname#220054
質問者

補足

回答ありがとうございます。手元にあるテキスト本で、よく確認したら、"の位置が間違っていました。ただ、直しても同じエラーが出てしまいます、ほかに原因があるようです。

関連するQ&A