2012-01-22 5 views
2

このコンパイルエラーが発生します。私はdefdifファイルの名前をdefdif.hに変更してシステムファイルが含まれないようにするなどのいくつかのトラブルシューティング手順を試しました。しかし、このエラーdoesntは行く。いずれかのアイデアがあります。error:expected ')' before 'n'

 
core/def.c: error: expected ')' before 'n' 
core/def.c: error: expected ')' before 'n 

def.cファイル

u16_t 
lwip_htons(u16_t n) 
    { 
    return(((n & 0xff) << 8) | ((n & 0xff00) >> 8)); 
    } 


u32_t 
lwip_htonl(u32_t n) 
{ 
return ((n & 0xff) << 24) | 
    ((n & 0xff00) << 8) | 
    ((n & 0xff0000UL) >> 8) | 
    ((n & 0xff000000UL) >> 24); 
} 
+0

u16_tとu32_tとは何ですか?その時点で定義が表示されていますか? – Mat

+3

@ radraddhaj:エラーを作る行は何ですか? – CharlesB

+8

エラーメッセージは、どの行に対応していますか? 'u16_t'と' u32_t'はどこに定義されていますか? –

答えて

3

のようなエラー:

u16_t lwip_htons (u16_t n) 
core/def.c: error: expected ')' before 'n' 

は常にu16_tタイプは、あなたの時点で定義されていないことを彼は事実に関連ほとんどですこれを使って。

int fn (u16_t n) { return n; } 
int main (void) { return 0; } 

はあなたを与える:例えば

gcc

qq.c:1: error: expected ')' before 'n' 

あなたが記述正確なエラーメッセージ。私はそれを変更するときにエラーが消える:

typedef int u16_t; 
int fn (u16_t n) { return n; } 
int main (void) { return 0; } 

それ故タイプは(あなたは、私が行っているように、一時的にlwip_htons直前にそれを自分で定義することによってこれをテストすることができます)に定義されていないことを前提として合理的に安全です。

コードベースに何がひどい変形をもたらしたのかよく分かりませんが、私が考えているパッケージであれば、これらの定義はarch/cc.hです。それがどこかのチェーンに含まれていることを確認してください。

私がそれがそうでないと思われる場合は、自分でtypedefを検索する必要があります。

+0

あなたのすべてのあなたの答えをありがとうございました。 – sraddhaj

0

おそらく標準化uint16_t、代わりにここuint32_tを望んでいた、と彼らは#include <stdint.h>から入手できます。