次の行を使用して、整数を文字に変換してファイルに書き込もうとしています。
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
、標準関数に置き換える必要があります。