ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

ヘッダファイルの役割

今まで見てきたことがあるパターンを書き出してみた.

関数のプロトタイプ宣言

  • おそらく一番オーソドックスな使い方.
  • 関数本体が書いてあるオブジェクトファイルor静的ライブラリor動的ライブラリがあるはず.
  • ヘッダーとオブジェクトファイルが一対一対応とは限らない?

グローバル変数のextern宣言

  • 研究室のプログラムでよく見た
  • 本来であればソースファイルごとにそのモジュールで使用するグローバス変数のみをextern宣言する方が礼儀よさそう
  • 変数の実体を定義するソースファイルを用意するのを忘れずに

インライン関数

  • 呼び出し回数が多くかつ短い関数はオーバーヘッドが関数呼び出しになってしまうので、インライン展開するとよい
  • コンパイラによっては必ずインライン展開される保証はないと聞く
  • システムコールとかをインラインにしておくことが多い?

構造体やtypedefやマクロ

  • これもよく見る
  • 関数のプロトタイプ宣言とともに書かれていることが多い.
  • マクロは変数だけでなく関数マクロも.
  • ペリフェラルレジスタをいじるような操作はマクロにしておくとよいらしい

子ヘッダーのインクルード

  • 数の子ヘッダーをインクルードしているヘッダーをマスターヘッダと言うらしい
  • windows.hやafxwin.hがまさにこの使い方

参考

ja.wikipedia.org