こんにちは､ ようこそ｡
このビデオでは､ コンパイラの警告について､ 大きな､ 大きなヒントでお話します｡
コンパイラの警告を無視しないでください｡
多くの場合､ ビルドの出力ウィンドウに表示されますが､ 新しいプログラマーの中には､ それを無視してしまう人もいます｡
無視はしないほうがいい｡
基本的に､ コンパイラによる警告は､ あなたのコードに潜在的な問題につながるような問題があることを教えてくれます｡
コードは構文的に正しいです｡
コンパイラはオブジェクトコードを生成し､ あなたのプログラムを生成することができますが､ それは完璧なコードではなく､
コードに問題がある可能性があります｡
構文的には正しく､ そのマシンコードを生成することができるので､ また警告に過ぎないのです｡
そのため､ 例えばtotalという変数を作成し､ その変数totalの値を表示しようとすると､
ビルド出力ウィンドウにtotalが使用されているという警告が表示されます｡
しかし､ そうではなく､ 未初期化なのです｡
そして､ その意味は､ 基本的にtotalには価値が付随していないことを意味しています｡
どこかのメモリに入っていて､ 値がない｡
だから､ その値を表示しようとすると､ 何でも表示される可能性があります｡
このように､ 構文的には正しいのですが､ 実際に変数を初期化する必要はありません｡
コンパイラが教えてくれるので､ コンパイラのエラーを無視しないようにするためですね｡
実際､ ほとんどのプログラマーは警告をエラーとして扱い､ 警告をすべて修正することになります｡
ここで､ 実際にコンパイラの警告をすべてオンにしてみます｡
警告は､ さまざまなカテゴリーに分かれていて､ オン・オフが可能だからです｡
dash w all コンパイラフラグを使用しているので､ すべての警告が表示され､ 本当にすべての警告を修正する必要があります｡
では､ Hello worldの例をコードで見てみましょう｡
実際に先ほどのスライドで行ったように､ 変数totalを作成して値を代入せず､ それをプリントアウトしてみることにしましょう｡
それで､ total isと言ってプリントアウトして､ コンパイルしようとすると､ 警告が出るのがわかりますよね？
基本的にtotalはinitializedで使用すると言っています｡
まだプログラムを走らせることができます｡
ビルドに上がれば､ やはりコードを生成することができるので､ 実行することができます｡
あくまで警告です｡
Cプログラムでは初期化されていないため､ 実際にはどのような数値にもなり得ますが､ Total is
zeroと表示されています｡
そして､ すべての変数を初期化して､ 実際に有効な値を含むようにするのが常套手段です｡
C言語では､ 変数が格納する実際のメモリは､ 以前のプログラムから引き継がれることが多い｡
だから､ 変数を初期化しなければ､ 何でもありになる｡
この場合は走ったときに､ たまたまゼロになったんですね｡
でも､ ちょっと運が良かっただけなんですよね｡
どんな値でもいいんです｡
だから､ その警告は必ず直したいと思っているんですね｡
さて､ Hello Worldアプリケーションに戻ったら､ Project 3に移動して､ それをアクティブプロジェクトにしましょう｡
Hello worldのようなアプリケーションの場合､ 初期化警告が出ないように､ 実際の変数Again,
totalを作成し､ 初期化して､ 実際にコンパイルしてみます｡
そしてこの場合､ コンパイルすると､ 別の種類の警告が表示されますよね？
未使用の変数です｡
つまりこれは､ 変数を作ったけど､ 使わなかったということですね｡
展示することはありませんでした｡
計算や算数などに使うことはありませんでした｡
では､ なぜ作るのでしょうか？
なぜ､ 使うことのない変数を作るのですか？
ある種､ 無駄なコード､ 死んだコードです｡
だから､ 削除したほうがいいんでしょ？
未使用の変数があるので､ 初期化を外しても使わないからですよね？
ですから､ 実際にこのようなものがあって保存し､ 再度コンパイルすると､ 未使用の変数が表示されることになります｡
だから､ 未使用変数の警告は初期化の警告より優先されるんだ､ 使ったことないんだ｡
このように､ C言語のさまざまな概念を学びながら､ if文やwhileループについて学ぶと､
コードに多くの警告が表示されるようになります｡ これらの警告については､ 後の講義で説明します｡
しかし､ 本当にこの講義で学びたいことは､ 警告は大きな意味を持つということです｡
警告を無視するのはよくない｡
実際､ 警告を見たときは､ それを修正することを目標とする方針を持つべきです｡
警告を無視しないでください｡
ありがとうございます｡