コンパイラは、ソースに明らかな誤りがあるとエラー(error)として、 誤りの可能性のある個所があると、 警告(warning)としてメッセージを出力してくれます。 エラー個所は修正しないと実行できませんが、 警告個所は修正しなくても、とりあえずは実行できます。
警告は、疑わしい個所の指摘なので、バグでないモノもありますが、 実質エラーと同等で場合よってはOKかも位のものも多く、無視するのは損でしょう。
あくまで、無視しない、確認する必要がある (メッセージの知らない単語くらいは辞書で調べて)というのであって、 何が何でも全部の警告を出ないようにしなければならない、とは言わないです。
かなり理不尽な警告や、どうしても対処できない警告などもあり、 また、ポインタや型変換関係の警告は理由がわからずに無理に(何でもキャストして)消すと 本末転倒で永久に取れないバグ化するので、 理解不能な警告は残して置いたほうがいいです…… (仕事ならば、とくに上級者に確認してもらう)
ただ、警告を見れば10分で取れるバグに数日〜1週間やそれ以上の時間 をかけるのは馬鹿らしいですし、仕事の場合、これで平気な人間は問題です。
また数10行数100行にわたる他愛ない警告メッセージに埋もれた重要な警告 メッセージを見過ごすのは、よくあること、です。
なので、他愛なく原因がわかっていて問題がないものであろうとも、 取れる限り警告はすべて取り、何か新たな警告が出たときにすぐ気付けるほうが確実によく、 そのためになるべく警告を出ないソースの書き方/プログラムの組み方を身につけるほうがよい、 ということになります (助長な表現になったり、重箱の隅を突つくような特殊な文法の都合に合わせることになろうとも)。 慣れないうちは苦しいでしょうが、多少苦労しようと、このほうが上達への近道でしょう。
警告を無視する習慣は、マルチステートメントの多用やgotoの乱用と同種の問題と思います。 破綻の経験までして身にしみて注意深くなるというのもあるかもしれませんが、 そのための時間や労力は安くないと思いすし、一度身に着けてしまうと、 わかっていてもなかなか直すのが大変な悪癖だと思います。
インデントを付ける習慣、(不要な)gotoを使わない習慣、と同様に警告を無視しない習慣、 は早期に身につけたほうがいい習慣だと思います。