-1

C の関数に char 配列ポインターを渡すときにエラーが発生しました。これをビルドするために VC++ エディターを使用しています。

エラー C3861: 'DecodeData': 識別子が見つかりません

Decoder.h

int DecodeAudioBytes();

int DecodeData(int argc, char* argv[]);

Decoder.c

int DecodeAudioBytes()
{
char* argv[] = { "test", "test1" };

return DecodeData(2, argv);

}
int DecodeData( int argc, char* argv[] )
{
   char      speechOutFileName[ 150 ], bitInFileName[ 150 ];

   int args = 0;
   strcpy( bitInFileName, argv[ args ] );
   args++;
   strcpy( speechOutFileName, argv[ args ] );
   args++;

}
4

3 に答える 3

0

この問題は解決されました。「C」ファイルにヘッダーファイルを含めるのを忘れていました。

ありがとう!

于 2013-02-09T07:20:43.137 に答える
0

の定義をDecodeData前に置くDecodeAudioBytes

于 2013-02-09T06:32:06.797 に答える
0

私はForhadに同意します。

宣言のみを前に置くこともできます。

static int DecodeData(int argc, char* argv[])

int DecodeAudioBytes()
{
    char* argv[] = { "test", "test1" };

    return DecodeData(2, argv);

}
int DecodeData( int argc, char* argv[] )
{
}

コンパイラが識別子を見つけたとき、DecodeData後で宣言されるため、識別子はまだそれについて何も知りません。

于 2013-02-09T06:35:55.650 に答える