0

C コードで strsep() を使用しましたが、このエラーが発生しました。

ここに画像の説明を入力

void    get_token()
{ 
    char    *token;
    char    *stringp;
    int n = 1;

    stringp = buf;

    while( stringp != NULL )
    {
            token = strsep(&stringp, "\t\n");
            switch(n) {
            case 1 : strcpy(label, token);
            case 2 : strcpy(opcode, token);
            case 3 : strcpy(operand, token);
            } n++;
    }
}

これは私のコードで、このように strsep() を使用しています。エラーが int と言ったかどうかはわかりません。strsep() return char* だと思います。

4

1 に答える 1

3

strsep()で宣言されていない実装を使用してい<string.h>ます。

結果は次のとおりです。

  1. コンパイラはstrsep()戻り値を想定していますint(したがって、最初の警告)
  2. リンカ ( ld) は、リンクに含まれるライブラリで名前が付けられた関数を見つけられません(したがって、 によって未解決であるというstrsep()エラー)。strsep()ld

これが発生する理由strsep()は、標準 C ライブラリの一部ではないためです。それを含むライブラリを入手するか、「独自の」バージョンのstrsep().

于 2015-12-20T04:05:19.993 に答える