エラーを取るには?

解決


udonko  2007-06-09 02:06:10  No: 65353

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

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

void Param_Clear(){


キー  2007-06-09 02:38:08  No: 65354

To:udonkoさん

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


keichan  2007-06-09 02:39:27  No: 65355

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

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


udonko  2007-06-09 02:47:15  No: 65356

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

#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-09 02:57:51  No: 65357

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


yoh2  2007-06-09 09:18:42  No: 65358

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

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


udonko  2007-06-09 19:36:54  No: 65359

ありがとうございます!

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加