=== 1. C言語 ==========================

コンパイル

コンパイルプロセス

分割コンパイル

ソースファイルを複数に分けて、別々に作成、コンパイルすることができる。これを分割コンパイルという。
メリット:

  • 他の人と作業を分担することができる
  • ソースファイルの管理がしやすくなる
  • 変更があったソースファイルのみをコンパイルすることで、実行ファイル作成のための時間を少なくすることができる

ソースファイルとヘッダファイル

Cコンパイラはソースファイルに書かれているものとヘッダファイルに書かれているものを区別することはない。ただ、慣習としてどちらに何を書くかは決まっている。「ヘッダ内では関数や変数の定義をしない」つまり、関数や変数の「宣言」はいいが、実際にメモリが確保される「定義」はヘッダ内に書かない。型の定義などマクロはヘッダに書いても構わない。これは、ヘッダは複数のソースファイルから#includeされるということを考えれば納得できる。

変数

変数は型と記憶クラスを持っている

C言語の型には、char, int, double, voidなどのプリミティブな型がある。
C言語には、変数をまとめる機構として、同じ型の変数を並べて番号をつけた配列(array)、異なる型の変数を1つにまとめた構造体(struct)1つの変数を複数の型で使用できるようにした共用体(union)がある。また、既存の型に別名をつける(typedef)機能もある。
変数のアドレスを入れる変数としてポインタを作成することもできる。

記憶クラス

記憶クラスとは、変数がメモリ上のどこに確保されるのかを表現するもの。extern, static, auto, registerなどがある。

関数

C言語のプログラムは関数の集まりからなっている。計算を実行する方法や手順は、全て関数の中に書かれた文によって表現される。プログラムを実行して最初に実行される関数はmainという名前です。

引数と戻り値

C言語の関数は、引数と呼ばれるinputと戻り値と呼ばれるoutputをもつ。引数は任意の個数で、戻り値は0個 or 1個。引数と戻り値はそれぞれ型を持ち、関数呼び出し側と関数定義側で型が一致しなければならない。関数を終了して、呼び出し元に戻る構文をreturn文という

宣言と定義

関数の名前、引数の型、戻り値の型を示したものを関数の宣言と呼び、実際の関数の動作内容まで示したものを関数の定義と呼びます。そのソースファイルの中だけで使われる関数にはstaticというキーワードをつけます。

実行の最小単位を文という。{}でくくったものを複文とよび、複数の文をあたかも1つの文のように順に実行させるために用いる。
文には、

  • if-else文
  • while文
  • for文
  • goto文

などがある。

計算を行う最小単位を式という。
型変換、加減剰余、ビット演算、関係演算子(&&, ||, !など)がある。
C言語では式にセミコロンをつけて文にすることができる。