次の行を使用して、整数を文字に変換してファイルに書き込もうとしています。
fputc(itoa(size, tempBuffer, 10), saveFile);
そして私はこの警告とメッセージを受け取ります:
警告:「itoa」の暗黙の宣言
'_itoa'への未定義の参照
私はすでにstdlib.hを含めており、コンパイルしています。
gcc -Wall -pedantic -ansi
どんな助けでもいただければ幸いです、ありがとう。
itoa
は標準の一部ではありません。 _-ansi
_が原因で使用できないか、まったく使用できないのではないかと思います。
sprintf()
を使用することをお勧めします
C99標準を使用する場合は、もちろんより安全なsnprintf()
を使用できます。
_char buffer[12];
int i = 20;
snprintf(buffer, 12,"%d",i);
_
これは、コンパイルフェーズ中にitoa
が不明であることを示しています。
警告:「itoa」の暗黙の宣言
したがって、この関数がシステムに存在する場合、それを宣言するヘッダーファイルがありません。次に、コンパイラーは、それが不特定の数の引数を取り、int
を返す関数であると想定します。
ローダーフェーズからのこのメッセージ
'_itoa'への未定義の参照
ローダーも、彼が知っているどのライブラリーにもそのような関数を見つけられないと説明しています。
したがって、おそらくブライアンのアドバイスに従って、itoa
を標準関数に置き換える必要があります。