2016-07-05 6 views
0

PIC32コンパイラv2.02で問題が発生しました。次のようにエラー:[関数]より前に '='、 '、'、 ';'、 'asm'または '__attribute __'が返される

コンパイラは型BOOLを定義しています

typedef enum _BOOL { FALSE = 0, TRUE } BOOL;  // BOOL Type 

私はそうのようなのfuctionで列挙値の1を返すようにしたい:私は私のコードをコンパイルするとき

BOOL 
MyFunction(void) 
{ 
    if(PortAvailable()) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
} 

私はこれを取得しますエラーは、 "MyFunctionを" にpretaining:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'MyFunction' 

私は、バージョン1からの私のコンパイラをアップグレードしています.05からバージョン2.02まで、BOOLの独自のtypedefを作成しました。コードはバージョン2.02を使用する前にうまくいきました。 (はい、BOOLのtypedefをコードから削除しました)。私はそうのような機能をdelcare場合、私は非常に奇妙見つける

何かがある:

enum BOOL 
MyFunction(void) 
{ 
    if(PortAvailable()) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
} 

コンパイラは上記の私にエラーを与えるものではありません。私は列挙されたBOOLを正しく使用していますか、誰かが私が行方不明のステップを知っていますか?

+1

コード内の 'MyFunction'定義の直前のものは何ですか? – jwodder

+0

voidを返す他の関数** void Initialize(void); ** これらのエラーは、常にメインのcファイルではなくヘッダーファイルを参照していることを忘れています。 –

+2

エラーがヘッダーファイルで発生している場合、ここに示したコードでエラーは発生していませんでしたか?エラーを生成している実際のコードを投稿してください。 – jwodder

答えて

0

この問題を解決するために時間を割いてくれてありがとう。私はマイクロチップC32コンパイラ、V2.02の新しいバージョンでそれを判断することができた、私は宣言する必要があります:「新しい」BOOLのtypdefを使用するファイルでPIC32標準ライブラリがある

#include <plib.h> 

を。古いバージョンのコンパイラでは、基本的にBOOLの独自のtypedeff(私がやった)を作成することができましたが、コードからtypedeffを削除した後は、列挙宣言のために適切なヘッダーを追加しませんでした。

ルーキーミスは私の側ではありますが、この回答が同じ問題を抱えている他の人々に役立つことを願っています。

関連する問題