お願いします。VC++2005です。
Cファイルで以下の文章で書き出しているんですけど、
「構文エラー : 'void' は ';' によって先行されなければなりません。」
というエラーがでて困っています。
誰か助けてください。。
#include "stdafx.h"
#include "define.h"
#include "variable.h"
#include "prototype.h"
void Param_Clear(){
To:udonkoさん
ソースコードはこれですべてでしょうか?
4あるヘッダの内、下3つのヘッダは何でしょう?自作でしょうか?
プロジェクトはコンソールアプリですか?
同じ状況を再現したいんですけどもう少し情報をいただけますか
ソースコードを全く端折っていないのであれば、
上記ヘッダのどこかでエラーしてると思います。
1個ずつコメントアウトしていって特定されては如何でしょうか?
返信ありがとうございます。正確なソースは下記になります。
指摘の通り下三つは自作です。
#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
以上、よろしくお願いします。
あと、コンソールアプリです。
コードが少し変わっているのは、他の関数をファイルの頭に持ってきてみただけで、深い意味はないです。同様のエラーがでました。
とりあえずふたつ上のkeichanさんのアドバイスに従ってみましょう。
どれかのヘッダの中の、最後に「;」が付くべきところに「;」がないのではないでしょうか。
<蛇足>
#includeって、Javaのimportのように、他のソースを別枠で解析した後にシンボルを
選択して拾ってくるのではなく、指定されたファイルの中身をごっそりと#includeが
ある部分に貼り付けてひとつのソースにしてしまう指令です。
だから、ヘッダファイルの方に間違いがあっても、間違え方次第では、そのヘッダファイル
の中ではなく、ヘッダファイルを利用しているソースの方でエラーが起こっているように
見えることがあるわけです。
</蛇足>
ありがとうございます!
>>とりあえずふたつ上のkeichanさんのアドバイスに従ってみましょう。
>>どれかのヘッダの中の、最後に「;」が付くべきところに「;」がないのではないでしょうか。
まさにこの通りでした。
蛇足もありがとうございました。