• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:visual C++だとコンパイルできるのに、borlandだとできません。)

Borlandで宣言が正しく終了していないエラーが発生する原因と解決方法

このQ&Aのポイント
  • Borlandでコンパイルしようとすると「宣言が正しく終了していない」というエラーが発生します。解決方法を教えてください。
  • 学校の課題でBorlandでコンパイルしたいのですが、どうすればいいのか分かりません。ソースコードを載せています。
  • 質問者はBorlandとVisual C++の両方を使用していて、Visual C++ではコンパイルと実行ができるが、Borlandでは宣言が正しく終了していないエラーが出ます。Borlandでコンパイルする方法を教えてください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

BorlandC++の場合Math.hのなかで無条件で M_PIをdefineしてるのでご質問のような現象になると思われます #include <Math.h> のつぎに #ifdef M_PI #undef M_PI #endif の3行を追加してみましょう これは M_PIがマクロ定義(#defineによる定義)がされているなら その定義を解除するという記述です Borlandの場合 double x_mid, x0=0, x1=90, y_mid, y0, y1, M_PI=3.14159265358979; の記述が プリプロセス(マクロの置換など)により double x_mid, x0=0, x1=90, y_mid, y0, y1, 3.14159265358979323846=3.14159265358979; といった 定数項に定数項の初期値を代入するといった宣言文になってしまうためにご質問のようなエラーになります VC++の場合 6.0以前は M_PIマクロの定義がないようです 2003以降は math.hで定義されていますが『_USE_MATH_DEFINES』をマクロ定義に追加しないと有効になりません

4arrow8
質問者

お礼

無事、コンパイルできました! ありがとうございます。 なるほど。borlandとVC++で、そんな違いがあったんですね。 何か違いがあるんだろうとは思っていたのですが、自分で調べても、全く分からなかったので、とても助かりました!!

その他の回答 (1)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

>学校の課題で、Borlandでコンパイルしたいのですが、どうすればいいのか分かりません。 コンパイラに怒られた箇所を修正するだけです。 そして定数 M_PI は math.h に定義されているはず。

関連するQ&A