エラーを取るには?

解決


udonko  2007-06-08 17:06:10  No: 65353  IP: 192.*.*.*

お願いします。VC++2005です。
Cファイルで以下の文章で書き出しているんですけど、
「構文エラー : 'void' は ';' によって先行されなければなりません。」
というエラーがでて困っています。
誰か助けてください。。

#include "stdafx.h"
#include "define.h"
#include "variable.h"
#include "prototype.h"

void Param_Clear(){

編集 削除
キー  2007-06-08 17:38:08  No: 65354  IP: 192.*.*.*

To:udonkoさん

ソースコードはこれですべてでしょうか?
4あるヘッダの内、下3つのヘッダは何でしょう?自作でしょうか?
プロジェクトはコンソールアプリですか?
同じ状況を再現したいんですけどもう少し情報をいただけますか

編集 削除
keichan  2007-06-08 17:39:27  No: 65355  IP: 192.*.*.*

ソースコードを全く端折っていないのであれば、
上記ヘッダのどこかでエラーしてると思います。

1個ずつコメントアウトしていって特定されては如何でしょうか?

編集 削除
udonko  2007-06-08 17:47:15  No: 65356  IP: 192.*.*.*

返信ありがとうございます。正確なソースは下記になります。
指摘の通り下三つは自作です。





#include "stdafx.h"
#include "define.h"
#include "variable.h"
#include "prototype.h"


void  Local_Param_Clear(int states)
{
  
  vol_max[states]        = NULL;
  vol_min[states]        = NULL;

  temp_up_peak_time[states]  = NULL;
  temp_down_peak_time[states]  = NULL;

  switch( states ){
      case SAMPLE_ONCE:  
        sample_a = NULL  ;break;
      case SAMPLE_TWICE:
        sample_b = NULL  ;break;
      case SAMPLE_THIRD:
        sample_c = NULL  ;break;
  }
}


stdafx.hのなかで「構文エラー : 'int' は ';' によって先行されなければなりません。」というエラーも出てます。クリックすると下記の場所が選択されます。

#ifdef  __cplusplus
extern "C" {
#endif


以上、よろしくお願いします。

編集 削除
udonko  2007-06-08 17:57:51  No: 65357  IP: 192.*.*.*

あと、コンソールアプリです。
コードが少し変わっているのは、他の関数をファイルの頭に持ってきてみただけで、深い意味はないです。同様のエラーがでました。

編集 削除
yoh2  2007-06-09 00:18:42  No: 65358  IP: 192.*.*.*

とりあえずふたつ上のkeichanさんのアドバイスに従ってみましょう。
どれかのヘッダの中の、最後に「;」が付くべきところに「;」がないのではないでしょうか。

<蛇足>
#includeって、Javaのimportのように、他のソースを別枠で解析した後にシンボルを
選択して拾ってくるのではなく、指定されたファイルの中身をごっそりと#includeが
ある部分に貼り付けてひとつのソースにしてしまう指令です。
だから、ヘッダファイルの方に間違いがあっても、間違え方次第では、そのヘッダファイル
の中ではなく、ヘッダファイルを利用しているソースの方でエラーが起こっているように
見えることがあるわけです。
</蛇足>

編集 削除
udonko  2007-06-09 10:36:54  No: 65359  IP: 192.*.*.*

ありがとうございます!

>>とりあえずふたつ上のkeichanさんのアドバイスに従ってみましょう。
>>どれかのヘッダの中の、最後に「;」が付くべきところに「;」がないのではないでしょうか。

まさにこの通りでした。
蛇足もありがとうございました。

編集 削除