簡単にするために、次のような Page.h ファイルがあるとしましょう...
#ifndef PAGE_H
#define PAGE_H
typedef struct Pgmap{
int test;
}Page;
void printPage();
#endif
Page.c が printPage() を定義し、...
#include "Page.h"
そして、上記の構造体/関数を使用する別の .c/.h ペアのファイルがあります。
Test.h で私は...
#include "Page.h"
、そして私のTest.cは持っています
#include "Test.h"
この時点で Page 構造体を使用できますが、printPage() を使用しようとすると、コンパイルしようとすると「'printPage()' への未定義の参照」エラーが発生します。
では、なぜ私のインクルードは構造体に対しては機能するのに、関数に対しては機能しないのでしょうか? 違いがある場合、私の gcc は gcc(SUSE Linux) 4.6.2 です。