多くの友人は、C 言語のデバッグについて聞き始めたばかりです。彼らは、C 言語のデバッグとは何だろうと疑問を表します。コードを直接入力するだけではありません。その結果、多くの初心者は数え切れないほど多くのエラーを抱えています。修正、削除、削除を開始するだけで、なんとか正常に動作します。結局、何が悪いのか分かりませんでした。子どもたちのほうがクエスチョンマークが多いかなという感じはあります。コードのデバッグがいかに重要であるかは想像できますが、実際の上司の場合、コードの入力が 20%、コードのデバッグが 80% です。他のことについては話さず、今日のトピックである C 言語のデバッグに直接進みましょう。
1: バグ
Mark II コンピューターで作業中にコンピューターが正常に動作しなくなり、ホープとチーム全員はその理由を理解できませんでした。その後、蛾が誤ってコンピューターに飛び込み、誤作動を引き起こしたことが判明した。ようやく問題が解決したホープは、その出来事を日記に記録しました。
2: デバッグの重要性
① デバッグ手順
1. プログラムエラーの存在を見つける
2. 切り分け、除去などによりエラーを特定します。
3. エラーの原因を特定します。
4. エラーを修正するための解決策を提案します
。 5. プログラム エラーを修正し、再テストします。
②デバッグとリリースの紹介
デバッグは通常デバッグ バージョンと呼ばれ、デバッグ情報が含まれ、最適化は行われないため、プログラマーがプログラムをデバッグするのに便利です。
リリースはリリースバージョンと呼ばれ、ユーザーが使いやすいようにプログラムのコードサイズや実行速度が最適化されることが多いです。
3: Windows 環境のデバッグの概要
① デバッグの準備(デバッグ環境でのみデバッグ可能)
②ショートカットキーを覚える
• F5: デバッグを開始します。多くの場合、次のブレークポイントに直接ジャンプするために使用されます。(ループ内の論理ブレークポイントにジャンプします)
• F9: ブレークポイントを作成し、ブレークポイントをキャンセルします。
ブレークポイントの重要な役割は、プログラムのどこにでも設定できます。
このようにして、プログラムを任意の位置で停止し、ステップごとに実行できます。
• F10: プロセスごと。通常はプロセスを処理するために使用されます。プロセスは関数呼び出しまたはステートメントにすることができます。
• F11: ステートメントごと、つまり毎回ステートメントを実行しますが、このショートカット キーを使用して実行ロジックを作成できます。
関数内にステップします (これが最も一般的に使用されます)。
• CTRL+F5: デバッグせずに実行を開始します。
③デバッグ中にプログラムの現在の情報を確認する
1. 一時変数の値を表示する
2. メモリ情報の表示
3. コールスタックを表示する
4: プログラミングにおけるよくある間違い
1 コンパイルエラー
2 リンクエラー(解析できない外部コマンド)
3 実行時エラー 論理的な動作に問題がある
5: 関連コードを使用してバグを減らす
1. const キーワード (const の機能により、データの不注意による変更によるプログラミング エラーを回避できます。)
2. ポインタ変数を変更する const の役割
3. 例(シミュレーション実装ライブラリ関数:strcpy)
//模拟实现库函数:strcpy
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest, const char * src)
{
char* ret = dest;
assert(dest != NULL);//断言防止空指针
assert( src != NULL);//断言防止空指针
//1.第一种写法
//while (*dest++ = *src++)
// ;
//2.第二种写法
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
*dest = *src;// \0 的拷贝
return ret;
}
int main()
{
//初始化
char arr1[] = "hello bit";
char arr2[20] = "xxxxxxxxxxxxx";
char* p = NULL;
//调用函数
my_strcpy(arr2, arr1);
//打印arr2
printf("%s\n", my_strcpy(arr2, arr1));
return 0;
}
気づいたら最後まで来てしまいました。これで第10章の知識は終わりです。初心者なのでうまく書けていないかもしれません。間違っていたらご指摘ください。