こんにちは､ そしてようこそ｡ この講義では､ プリプロセッサーについてお話したいと思います｡
この概念については､ 以前の講義で簡単に説明しましたが､ 主にメリットとして挙げているだけです｡
今､ 授業の早い段階で少しお話したいのは､ あらゆる番組で使われているからです｡
そして､ プリプロセッサーコマンドであるincludeディレクティブについてお話したいと思います｡
だから､ その話をしようと思ったら､ まずプリプロセッサの一般的な説明をしなければならない｡
これはハイレベルな説明になると思います｡
授業が進むにつれて､ プリプロセッサのさまざまなディレクティブなどについて､
さらに詳しく説明することになります｡
しかし､ 基本的なことを理解するだけでも､ このプリプロセッサーはcの特徴的な機能である｡
他の言語ではあまり見られません｡
そして､ それはとても有利なことなので､ 理解するように努めてください｡
そして､ なるべく多く使うようにしなければなりません｡
基本的には開発者がプログラムを開発しやすいようにするものです｡
プログラムを見やすくします｡ 改造もしやすくなるし､ 移植もしやすくなる｡
だから､ いろいろな利点が可能になるのです｡
そのため､ Cの初期学習において､ それが何であるかを理解するための説明が重要です｡
cのコンパイル処理の一部だが､
特殊な文として認識される｡
また､ 名前にプリプロセッサとあるように､ コードを処理する前に何かが行われていることを暗示しているのです｡
そのため､ 実際にプログラムそのものを解析する前に､
コードの中の特定のステートメントを解析します｡
本来はコンパイルする前にやることなんですけどね｡
つまり､ このコードに実際に変換する前､ オブジェクトファイルを生成する前､
リンクして実行ファイルを生成する前に､
まずこれをやってくださいとコンパイラに伝えているのです｡
このように､ コンパイルする前にいろいろなことをやっておくと､ 最適化ができて､
いろいろと楽になるんですね｡
このプリプロセッサーコマンドは､ ソースコードの一番上にあることが多いのですが､
どこにあってもかまいません｡
これらは､ コード中のどこにでも散りばめることができます｡
その中でも大きな話題となるのが､ includeです｡
つまり､ ソースコードのプリプロセッサ文は､ その前にポンド記号がついているので､
その数字のポンド記号で識別できるのです｡
そして､ プリプロセッサー指令として知られるプリプロセッサーコマンドであるためには､
その行の最初の非空白文字でなければならない｡
さて､ 冒頭で述べたように､ 最初の課題では実際にプリプロセッサーディレクティブを使用しました｡
それは､ インクルード指令である｡ ポンド記号が見えたので､ プリプロセッサー指令であることがわかります｡
インクルードが何をするものなのかは正確にはわかりませんので､ 別の講義でお話します｡
しかし､ これはプリプロセッサー・コマンドであり､ プリプロセッサー・ディレクティブである｡
また､ 基本的にどのプログラムでも広く使われているため､
どのプログラムにもインクルードが存在することになるので､ 早い段階でこの話をしたいと思いました｡
しかし､ ただ単にインクルージョンがあるというだけではありません｡
プリプロセッサーは､ 他にもいろいろなことができ､ 他のコマンドも持っています｡
このコースでは､ プリプロセッサーに関して､ 定数を作成できるようにするなどの話をします｡
定数とは､
基本的に値が変化しない変数という概念です｡
変化しないデータだ､ そういう風に考えればいいんです､ まだ変数の話もしていませんから｡
しかし､ プリプロセッサーで定数を作成することで､
コードを最適化し､ より効率的に実行することができます｡
また､ マクロという概念もありますが､ これは全く別の話です｡
しかし､ マクロもプリプロセッサー指示文の一つです｡
マクロを作成する方法としては､ defineステートメントを使用します｡
そして､ defineについて､ 定数の作成について説明します｡
しかし､ プリプロセッサの概念や､ include､ define､
constantといったさまざまなものの利用法については､ よく理解しておく必要があります｡
インクルードについては､ 次回の講義で具体的に説明しますが､ そのメリットは､
自分でライブラリファイルを作成できることです｡
そして､ ライブラリとは何かというと､ ライブラリとは既存のコードを再利用するだけのものだという話をしました｡
だから､ 書かなくてもいいコードなんです｡
c言語には､ コンソールへの出力､ ファイルの読み書き､
ストリームの処理など､
さまざまなことを行う標準ライブラリが付属しています｡
javaに慣れている方は､
javaのAPI（アプリケーション・プログラミング・インターフェース）をインポートするのと同じです｡
プリプロセッサディレクティブの他の例としては､ if def the end if,
the else or the in if not
define文のような条件的なものがありますが､ これらについても詳しく説明します｡
しかし､ これらのプリプロセッサー指示文はすべて､ コードの効率化に役立ち､
コンパイラーが実際に実行する前に実行されます｡
どのコードもオブジェクトファイルや実行ファイルを生成する前に実行されます｡
しかし､ これについては､ 今後の講義でもっと詳しく説明する予定です｡
なぜなら､ 次に説明するinclude文の内容を理解する前に､
この文の内容を理解する必要があるからです｡
ありがとうございます｡