C言語のコンパイルでエラーが発生する理由

このQ&Aのポイント
  • C言語のプログラムをコンパイルする際に発生するエラーについて解説します。
  • エラーC2059やC2143が表示される場合、構文エラーが発生している可能性があります。
  • 特に、サフィックスの無効な箇所や括弧の不足が原因となることが多いです。
回答を見る
  • ベストアンサー

コンパイルできません。

Cでプログラム組んでいるのですが、コンパイルした時に下のようなエラーが出ます。いくら探してもエラーが見つからないのですが、わかる方いましたらお願いします。 error C2059: 構文エラー : 'サフィックスが無効です。' error C2143: 構文エラー : ')' が 'constant' の前に必要です。 error C2143: 構文エラー : '{' が 'constant' の前に必要です。 error C2059: 構文エラー : '<Unknown>' error C2059: 構文エラー : 'サフィックスが無効です。' error C2059: 構文エラー : 'サフィックスが無効です。' error C2059: 構文エラー : ')' ")","{"が抜けているのかと思い、探してみましたが大丈夫なようです。 あと、サフィックスってなんですかね?

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

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

エラー通りですと、やはり ) が合っていないんだとおもいますよ。 エディタによっては対応する (){} を探してくれるものもありますのでもう一度見てみてはいかがでしょうか #最初のエラーより前後20行程度のソースをコピーペーストして補足として掲載されてもよいかもしれません

techtechloader
質問者

お礼

回答ありがとうございます。 やはり")"が抜けてました。 初歩的なミスですいませんでした。

関連するQ&A

  • WiiYourself!をコンパイルできない

    WiiYourselfをVisualStadio2008(visual C++)でDemoフォルダのソースをコンパイルしようとしたのですがコンパイルエラーが100個以上出て失敗してしまいました(ソースは入手したときのままです)。エラーは以下のとおりです。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2065: '_In_' : 定義されていない識別子です。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2144: 構文エラー : '_EXCEPTION_RECORD' は ')' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2448: '_except_handler' : 関数の定義が間違っています。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(61) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(62) : error C2144: 構文エラー : '_CONTEXT' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(63) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(64) : error C2059: 構文エラー : ')' 1>c:\winddk\7600.16385.0\inc\api\windef.h(49) : error C2143: 構文エラー : ';' が '*' の前にありません。    ........ 開発環境は以下の通りです Windows vista WDM (インクルード(inc/api) ライブラリ(lib/wxp/i386)をvisual C++に設定している) WiiYourself1.01a とWiiYourself!_1.14b両方試しましたが同じ結果でした 原因をご存知の方がいらっしゃたらどうか書き込みお願いします。 よろしくお願いします。

  • 漢字のコメントをはずすとコンパイルできる

    Visual Stadio 2008 の C++ で以下の簡単なプログラムをコンパイルすると、  error C2059: 構文エラー : 'else'  error C2059: 構文エラー : 'return'  error C2059: 構文エラー : '}' のようにエラーが出ます。 ------------- #include <stdio.h> int main(int argc, char** argv) {  // 引数が指定されていた場合  if( argc == 2 ){   printf("引数があります");  }else{   printf("引数がありません");  }  return 0; } ---------- いろいろ試してみたところ、  ・コメントをはずすと、コンパイルできる  ・ソースリストはUTF-8である  ・同内容をShiftJISで記載すると、コンパイルできる ことに気がつき、  「UTF-8の日本語コメントを、コメントとして正しく認識していない」らしい ことが原因らしいところまでわかりました。 で質問になりますが、 「UTF-8の日本語コメントを、コメントとして認識させる」 ためには、どうしたらよいのかお教えください。

  • eclipseで再コンパイルしたら動かなくなった。

    eclipseで一度動いていたソースを再コンパイルしたら以下のエラーが 出ました。 どこがいけないのでしょうか? 2011/03/07 18:44:02 org.apache.catalina.core.ApplicationDispatcher invoke 致命的: サーブレット jsp のServlet.service()が例外を投げました java.lang.Error: コンパイル問題が未解決です。 構文エラーがあります。")" を挿入して MethodInvocation を完了してください。 構文エラーがあります。";" を挿入して Statement を完了してください。 onClick を解決できません。 トークン "Invalid Character" に構文エラーがあります。( が無効です。

  • 分割コンパイルの方法

    自作のクラスのメンバ変数にSTLのlistを使おうと考えています。 1ファイルでのコンパイルは通るのですが、以下のように分割コンパイルしようとすると、list<int> value; の行で以下のエラーが出ます。 listクラスではなく、別の自作のクラスをメンバ変数にして、そのクラスのヘッダーファイルをインクルードした場合は問題なくコンパイルできるので、何が問題なのか全く見当がつきません。どなたかご存知の方がおられれば解決法を教えていただけないでしょうか?よろしくお願いいたします。 error C2143: 構文エラー : ';' が '<' の前に必要です。 error C2501: 'list' : 識別名を宣言するのに、型が指定されていません。 error C2059: 構文エラー : '<' error C2238: ';' の前に不正なトークンがあります。 /* test.h */ #ifndef TEST_H_INCLUDED #define TEST_H_INCLUDED #include <list> class Test{ public: list<int> value; Test() {} }; #endif

  • コンパイルできません

    #include<iostream> using namespase std; int main(){ double feet; do{ cout<<"フィート数を入力する(0で終了):"; cin<<feet; cout<<feet*12<<"インチ\n"; }while(feet!=0.0); return 0; } をVisual Studio 2008 コマンドプロンプトでコンパイルしようとしたら、このようなメッセージが出てコンパイルできません。何故なのでしょうか?よろしくお願いします。 sample1-3-2.cpp C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 sample1-3-2.cpp(2) : error C2146: 構文エラー : ';' が、識別子 'std' の前に必要で す。 sample1-3-2.cpp(2) : error C2873: 'namespase' : シンボルを using 宣言の中で使用 することはできません。 sample1-3-2.cpp(2) : error C4430: 型指定子がありません - int と仮定しました。メ モ: C++ は int を既定値としてサポートしていません sample1-3-2.cpp(2) : error C2365: 'std' : 再定義; 以前の定義は '名前空間' でした 。 sample1-3-2.cpp(7) : error C2065: 'cout' : 定義されていない識別子です。 sample1-3-2.cpp(8) : error C2065: 'cin' : 定義されていない識別子です。 sample1-3-2.cpp(9) : error C2065: 'cout' : 定義されていない識別子です。

  • VC構文エラー、”:”

    VC++6でコンパイルしています コンパイラが古いのだと思いますが、最近のサンプルソース(誤記は無いはず)が合成時エラーします struct _MP { USHORT MaxPacket:11; /* 0..10 */  ←エラー USHORT HSmux:2; /* 11..12 */ USHORT Reserved:3; /* 13..15 */ }; error C2059: 構文エラー : 'constant' ここの MaxPacket:11; 見たこと無い書き方なのですが ”:” がvc+++6でエラーなのだと思います vc++6的にはどう書くのでしょうか? よろしくお願いします

  • JAVAについて。コンパイルができません

    public class Main { public static void main(String[] args){ System.out.println("Hello World"); } } 上のソースで記述して、コマンドプロンプトでコンパイルしようとすると 下のような表示が起きます C:\Program Files\Java\jdk-12.0.1\bin>javac Main.java Main.java:1 エラー: Mainの書き込み中にエラーが発生しました: C:\Program Files\Java\ jdk-12.0.1\bin\Main.class public class Main { ^ エラー1個 何が原因でコンパイルされないかわからないです。 わかるかたいましたらよろしくお願いします。

  • 明示的にコンパイル

    java eclipse3.5を使ってプログラミングの勉強をしています。 あるプログラムを実行するために、事前にいくつかのプログラムを 明示的にコンパイルしなくてはいけないのですが、明示的にコンパイルする方法が分かりません。 あるサイトを見たら、【プロジェクト】ー>【すべて再ビルド】を 選択すればよいとかかれていたのでやってみたのですが、次のような エラーが出てしまいます。 Exception in thread "main" java.lang.ClassNotFoundException: EchoProtocolFactory at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at socket_110.ThreadMain.main(ThreadMain.java:22) このエラーを取り除くには、どうすればよいのでしょうか? 分かる方お願いします。

  • PL/SQLのコンパイル

    PL/SQLで書いた構文をコンパイルしようとしたら 「キーワードがありません」というコンパイルエラーが出ます。 キーワードとはいったい何をさしているのでしょうか。 ご存知の方がいましたらご教授ください。お願いいたします。

  • 同じプログラムなのにコンパイル不可能?

    コンパイルできているプログラムをコピーして、 新規にプログラム作成し、貼り付けているのですが、 新しい方のプログラムはコンパイル出来ません。 シンタックスエラーになってしまします。 同じなのになぜこんな事が起こるんでしょうか?

専門家に質問してみよう