私の C ソース コードには、初期化されていない変数が多数含まれています。コードは RHEL 6.4 オペレーティング システム上にあります。
初期化されていない変数をすべて見つける方法はありますか?
それらすべてを見つけることは、数学的な意味で (少なくとも誤検出がなければ) 不可能です。ただし、それらのいくつかを見つけるのに役立つツールがいくつかあります。
gcc
は-Wuninitialized
、-Winit-self
、および になり-Wmaybe-uninitialized
ます。さまざまなレベルの最適化でこれを試す必要があることに注意してください。さまざまなレベルでさまざまな警告が表示され-O
ます。-Wmaybe-uninitialized
(名前が示すように)誤検知を与える可能性があることに注意してください。malloc
など) については、 を使用できますvalgrind
。これには、実際にプログラムを実行する必要があります。GCC を使用していると仮定して、プログラムを -Wuninitialized でコンパイルします。常に -Wall を指定してコンパイルする方がよいでしょう。なぜなら、C を使用するプログラマーは、得られるすべての支援を必要とするからです。