.c
ヘッダーファイルには、を「呼び出す」ファイルで使用されるさまざまな関数、構造体などの前方宣言があることを知っています#include
よね?私が理解している限り、「権力の分離」は次のように発生します。
ヘッダー ファイル:func.h
関数の前方宣言を含む
int func(int i);
C ソース ファイル:func.c
実際の関数定義が含まれています
#include "func.h" int func(int i) { return ++i ; }
C ソース ファイルsource.c
(「実際の」プログラム):
#include <stdio.h>
#include "func.h"
int main(void) {
int res = func(3);
printf("%i", res);
}
私の質問は次のとおりです。これは、ファイル内#include
の内容をコピーする単なるコンパイラ ディレクティブであることを確認した場合、ファイルは実際に関数を実行する方法をどのように知っているのでしょうか。取得しているのはだけなので、実際にどのように機能を実行できるのでしょうか? の実際の定義にアクセスするにはどうすればよいでしょうか? ヘッダーには、「それが私の定義です。そこにある!」というような「ポインター」が含まれていますか?.h
#include
.c
int func(int i);
func
それはどのように機能しますか?