C言語プログラムのデバッグ方法
プログラムのエラーチェックやトラブルシューティングをいわゆるプログラムデバッグといいます。
プログラムのデバッグは通常、次の手順を実行する必要があります:
1. まず、手動検査、つまり静的検査を実行します。
プログラムを作成した後は、急いでコンピュータに向かうのではなく、手動でプログラムを検査してください。このステップは、プログラマーの過失によって引き起こされるエラーのほとんどを検出できるため、非常に重要です。このステップは、常にすべてをコンピュータにプッシュしたいと考えている人々によって見落とされがちですが、これによりマシン時間がより多く消費されます。プログラマとして、厳密なスタイルを開発し、すべてのステップを厳密に制御し、問題をコンピュータに任せないようにする必要があります。その後のプロセス。 (推奨学習:
c 言語ビデオ チュートリアル) 手動検査をより効果的に実行するには、コンパイルされたプログラムで次の点を達成するように努める必要があります。
① 可読性を高めるために、構造化プログラミング手法を使用してプログラミングを行う必要があります;2. 手動検査が正しいことを確認したら、コンピューターでデバッグを実行します。② 各プログラムの役割を理解するために、できるだけ多くのコメントを追加します;
③ 複雑なプログラムは書かないでください。 main 関数内のすべてのステートメントを使用し、さらに多くの関数を使用して別の関数を実装します。
パラメータを使用してデータを転送することに加えて、関数間の結合関係をできるだけ少なくして、関数を簡単にチェックして個別に処理できるようにする必要があります。
コンピュータテストによるエラーの発見は動的検査と呼ばれます。構文エラー情報はコンパイル中に表示され、デバッグ中にプロンプト情報を使用してプログラム内のエラーを見つけて修正できます。
エラーが表示される場所は、実際のエラーの場所ではない場合があることに注意してください。エラーが表示される行でエラーが見つからない場合は、前の行に移動する必要があります。行を入力して再試行してください。エラー メッセージの種類が完全に正確であるとは限らない場合があります。エラーの状況は数多くあり、さまざまなエラーは相互に関連しているため、文字通りの意味でエラー メッセージを探すのではなく、実際のエラーを分析して見つけることができる必要があります。
システムが大量のエラー メッセージを表示する場合は、上から下に 1 つずつ修正する必要があります。場合によっては、大量のエラー情報が表示されるため、問題が深刻で、何も始めることができないと感じてしまうことがよくあります。実際には、エラーは 1 つまたは 2 つだけである可能性があります。たとえば、使用される変数が定義されていない場合、コンパイル中にその変数を含むすべてのステートメントに対してエラー メッセージが発行されます。このとき、変数定義を追加すればエラーは解消されます。
3. 構文エラー (「エラー」や「警告」を含む) を修正した後、プログラムはリンクを通じて実行可能なターゲット プログラムを取得します。
プログラムを実行し、結果を取得するためにプログラムに必要なデータを入力します。実行結果を分析して、要件を満たしているかどうかを確認する必要があります。初心者の中には、しっかり分析せずに走行結果を見て問題ないと考える人もいますが、これは危険です。 データが複雑で、結果が正しいかどうかをすぐに判断することが難しい場合があります。あらかじめ「テストデータ」をまとめて検討し、それを入力することで結果が正しいかどうかを簡単に判断できます。たとえば、方程式ax2 bx c=0を解き、a、b、cの値をそれぞれ1、-2、1と入力すると、ルートxの値は1になります。これは簡単に判断できますが、ルートが 1 に等しくない場合は、プログラムが明らかに間違っています。
ただし、「テストデータ」を使用する場合、プログラムの実行結果は正しいものであり、プログラムが完全に正しいという保証はありません。別のデータセットを入力すると、結果が不正確になる可能性があるためです。たとえば、式を使用してルートの値を求める場合、a=0 は擁護および複数化されていません)。したがって、プログラムが遭遇する可能性のあるすべての状況を 1 つずつ試してみる必要があります。たとえば、if ステートメントに 2 つの分岐がある場合、一方の分岐を通過するときはプログラムの結果が正しくても、もう一方の分岐を通過するときは結果が正しくない可能性があります。すべてを考慮する必要があります。実際、プログラムが複雑な場合、考えられるすべての状況をテストすることは困難ですが、テストには典型的な重要なデータを選択するだけです。
4. 実行結果は不正確で、ほとんどが論理エラーです。このようなエラーを発見するには、多くの場合、慎重な検査と分析が必要です。 1. プログラムとフローチャートを注意深く比較し、フローチャートが正しければ、プログラムが間違っているかどうかを見つけるのは簡単です。たとえば、複合文で中括弧を書き忘れた場合でも、フロー図を見るとすぐに見つけることができます。2. 本当にエラーが見つからない場合は、「セグメント検査」方法を使用できます。プログラム内の異なる場所に複数の printf 関数ステートメントを設定して、関連する変数の値を出力し、セクションごとにチェックします。あるセクションのデータが間違っていることが判明するまで。現時点では、エラーはこの段落に限定されています。 「エラーチェックエリア」を継続的に縮小していくことで、エラーを発見することができます。
3. 「条件付きコンパイル」コマンドを使用してプログラムをデバッグすることもできます (プログラムのデバッグ段階では、いくつかの printf 関数ステートメントがコンパイルされて実行されます。デバッグが完了すると、これらのステートメントはコンパイルする必要がなくなり、実行されなくなります)。この方法を使用すると、効率を向上させるために printf 関数ステートメントを 1 つずつ削除する必要がなくなります。
4. プログラムに問題がなければ、フローチャートに誤りがないか、つまりアルゴリズムに問題がないかを確認します。その場合は修正してからプログラムを修正してください。
5. 一部のシステムでは、プログラムを追跡し、対応する情報を提供するためのデバッグ ツールも提供されており、これを使用すると便利です。関連するマニュアルを参照してください。
一言で言えば、プログラムのデバッグは、大変な労力と頭の使い方、そして経験の蓄積を必要とする、緻密で奥の深い作業です。プログラムのデバッグのプロセスには、多くの場合、その人のレベル、経験
#、および態度が反映されます。皆さんも十分に注意していただければと思います。コンピュータ上でプログラムをデバッグする目的は、「プログラムが正しいかどうかを確認する」ことではなく、「デバッグの方法や技術を習得する」ことであり、自分で問題点を見つけられるようになり、徐々に実践的なプログラムが書けるようになります。エラーが少なくなります。 C 言語に関する詳しいプログラミング チュートリアル については、PHP 中国語 Web サイトに注目してください。
以上がC言語プログラムのデバッグ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。