• ベストアンサー

C言語のエラーについて

現在C言語によるある結構大きなプログラムを作成しています. C言語は授業で以前やったことはあり,今復習しながら勉強しています. 大体組めたのですが,あるところでよく分からないエラーで進めずに困っています. ・エラー (1) 構文エラー : ')' が '{' の前にありません。 (2) 構文エラー : ')' が ';' の前にありません。 (1) (2)のエラー箇所を見たら以下のifのところと普通の数式のところで見られます. (1) => if (t < T){ (2) => w=(数式); }else{ w=(数式); } 何も問題はないと思われる箇所にエラーが現れます. このような場合にどのように対処したらよいのか分からず困っています. もし同じような経験をされた方がいましたらぜひその時どのようにして 解決したかご教授お願い致します!

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

  • ベストアンサー
  • Senna_FF
  • ベストアンサー率45% (153/334)
回答No.5

No2でsutgheさんがおっしゃってることの応用です。 まずは、関数全てをコメントアウト。 そこで、エラー発生ならそのほかの箇所にエラー箇所がある。 エラーが発生しなければ、関数内でブロックごとにコメントアウトを実施。 めんどくさいですが機械的に見つけるならこの方法!! この繰り返しで必ずみつかります。 私もよくありますが、きっと「うわっ」ってな具合でみつかります。 (↑結構はずかしかったりする!!) がんばってください。

daitasuki
質問者

お礼

返事が遅れて申し訳ありませんでした. 回答有難うございます. この方法で試したところようやく見つけることができました! 使用していたヘッダファイルの中で    #define A (式) という風に定数を設定しているところがあるのですが,その(式)の中で()が多く,その中に)が一箇所抜けているところがありました.本当に「うわっ」という具合で見つかりました.(;^_^A これでプログラムがすべて完成したわけではありませんが,完成へと大きな前進の1つとなりました. 有難うございました!

すると、全ての回答が全文表示されます。

その他の回答 (4)

noname#198419
noname#198419
回答No.4

>(1) => if (t < T){ >(2) => w=(数式); よりも前に出現する行に・・・ >(1) 構文エラー : ')' が '{' の前にありません。 >(2) 構文エラー : ')' が ';' の前にありません。 のところがあるのだろうと思われます。 あと・・・ コンパイルエラーは最初に出てきたメッセージから調べてみてください。 後のほうになればなるほど、提示されるメッセージは、エラーのある行番号の計算などが怪しくなっていきます。

daitasuki
質問者

お礼

回答有難うございます. ここに投稿する前にエラー箇所の前の方を見ましたが 「{」や「;」が抜けている箇所は見当たりません. もう一度詳細に調べてみます. コンパイルエラーは全部で6件あり,すべて 構文エラー : ')' が '{' の前にありません。 構文エラー : ')' が ';' の前にありません。 のどちらかです.

すると、全ての回答が全文表示されます。
  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.3

おそらく(1)の手前に()の数の不整合があって一見関係ない、(1)のところでエラーが出ているのでしょう。 的確な位置で(){}の不整合を指摘できればよいのですが、そのようなことはできないことが証明済みです。 vi, vimでは、括弧の上で%を押すと対応する括弧を示してくれるので、私はこの機能を使って(){}の不整合を解決しています。

daitasuki
質問者

お礼

回答有難うございます. ここに投稿する前にエラー箇所の前の方を見ましたが 「{」や「;」が抜けている箇所は見当たりません. もう一度詳細に調べてみます. 長いのでかなり大変です!(^_^;) 頑張ります!

すると、全ての回答が全文表示されます。
  • sutghe
  • ベストアンサー率0% (0/1)
回答No.2

if (t < T){ w=(数式); }else{ w=(数式); } を全部コメントアウトします。 それ以前に何かの閉じが書かれていなかったりした場合、ソースのずっと下の方でエラーになる場合があります。

daitasuki
質問者

お礼

回答有難うございます. コメントアウトした所,確かにソースのずっと下の方でエラーが出ました.しかし上の方にあるのは void f1(void) { Complex ~; int ~; float ~; tpi=~; くらいで特に問題は無いと思うのですが・・・

すると、全ての回答が全文表示されます。
回答No.1

エラーの行数は、エラーが発生している場所ではなくて、「発覚した」場所です。 まずは、括弧の対応が正しいかひとつずつチェックしてください。問題の箇所は、この部分より上の方にあるはずです。

daitasuki
質問者

お礼

回答有難うございます. 慎重に調べてみたいと思います.

すると、全ての回答が全文表示されます。

関連するQ&A