警告を無効にします:GCC ではヘッダー ファイルを介した「gets」関数は危険ですか?

明らかな答えは、コンパイラが伝えようとしていることから学ぶことです。gets() はまったく安全ではないため、絶対に使用しないでください。代わりに fgets() を使用してください。これにより、バッファ オーバーランの可能性を防ぐことができます。

#define BUFFER_SIZE 100
char buff[BUFFER_SIZE];
gets( buff);   // unsafe!
fgets( buff, sizeof(buff), stdin );   // safe

本当に使いたいなら。

ここに回答があります:http://www.gamedev.net/community/forums/topic.asp?topic_id=523641

かなり新しいバージョンの gcc を使用している場合は、次を使用できます:

#pragma GCC diagnostic ignored "your option here"

たとえば、これらのヘッダーが「浮動小数点比較は安全ではありません」というエラーを生成する場合、次を使用します:

#pragma GCC diagnostic ignored "-Wfloat-equal".

残念ながら、その方法で "-Wall" を無効にすることはできません (それは簡単すぎるでしょう...)。

ドキュメント:http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

編集: しかし、gets warning では動作しないようです... PC で試してみました。


警告に注意して、 gets を置き換えます .これは私には十分に明らかです: