Cのデータ型
char:文字コードの数値
int:整数(少なくとも15ビット)
short:整数(intの半分)
long:整数(少なくとも32ビット)
float:浮動小数点数
double:倍精度浮動小数点数
関数宣言
- コンパイラは未知の関数への呼び出しがあると、その関数がintを返すとみなす
- そのため、関数を定義する前に呼び出すと、問題となる場合がある
- 関数宣言は、関数を定義する前に関数の概要をコンパイラに知らせる
- 関数宣言をソースコードの先頭に記述すると、コンパイラが戻り値の型で混乱することはない
- 関数宣言は、多くの場合、ヘッダファイルに入れる
- #include を使って、コンパイラにヘッダファイルの内容を読み込むよう指示できる
- #include <ファイル名>とすると、コンパイラは標準ヘッダファイルのディレクトリからファイルを探す
- #include “ファイル名”とすると、コンパイラは現在のディレクトリからファイルを探す
コードの共有
- コードを共有するには、そのコードを別のCファイルに入れる
- 関数宣言は別の.hヘッダファイルに入れる
- 共有コードを使いたいCファイルで、そのヘッダファイルをインクルードする
- コンパイラコマンドでは、必要となる全てのCファイルを列挙する
例:hide_massage.cで、共有コードencrypt.cを使う場合
(1) encrypt.cの冒頭で #include “encrypt.h”
(2) hide_message.cの冒頭で、 #include “encrypt.h”
(3) コンパイラコマンドで、必要となる全てのCファイルを列挙:gcc hide_message.c encrypt.c -o hide_message
コンパイル時間の短縮(オブジェクトコードのキャッシュとmakeによる自動化)
- 大量のファイルをコンパイルする場合、長い時間がかかることもある
- オブジェクトコードを*.oファイルに格納すると、コンパイル時間を短縮できる
- gccは、ソースファイルだけでなくオブジェクトファイルからもプログラムをコンパイルできる
- makeツールはビルドの自動化に利用できる
- makeはファイル間の依存関係を知っているので、変更したファイルだけをコンパイルできる
- makeには、makefileを使ってビルドについて知らせる必要がある
- makefileでは、行のインデントには空白ではなくタブを使う