ヘッダーのインクルードとは、単なる「ファイルの内容を挿入」することに他なりません。
例えば、
hoge.hファイルに1行以下のコードがあったとします。
NSLog(@"hoge");
そして、mainのプログラムでこう書きます。
# import <Foundation.h>
int main()
{
#include "hoge.h"
return 0;
}
するとこれはコンパイル時には
# import <Foundation.h>
int main()
{
NSLog(@"hoge");
return 0;
}
と展開されますね。
つまり結局はマクロなのですね。
これを利用すると、普通の関数呼び出しやクラス等でのコードの再利用とは、
スケールの違ったありえないレベルでコードの使い回しが可能になります。
アスペクト指向なんて目じゃないです。
こういった無茶ができるのがC系統言語のいいところだと思います。
え? あまりお行儀よくないって?
ええ、まったくおっしゃる通りでございます。
ご利用は計画的に。